前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >codeforces 344B - Simple Molecules

codeforces 344B - Simple Molecules

作者头像
xindoo
发布2021-01-22 12:45:36
2640
发布2021-01-22 12:45:36
举报
文章被收录于专栏:XINDOO的专栏XINDOO的专栏

题意就是给出3个原子的化学价,然后组成一个分子,要保证这个分子是稳定的,如果你还记得高中化学知识的话这个很容易理解,然后让你求出1-2 2-3 1-3 号原子之间有几条键, 这里我分别用ta tb tc 表示, 用数学的方法表示出来的话就是a = tc + tb; b = ta+tc; c = ta + tb;可能有多种情况,只要输出一种即可。

我们随便找其中一个原子,然后从0开始枚举它到b原子有多少键,根据上面的式子,可以计算出到c原子的键,然后就可以知另外两个原子间的键值,做一次判断即可,无需判断a = tc + tb; b = ta+tc; c = ta + tb; 因为计算工程中就用到了其中两个等式,保证其一定成立。 还有就是无法组成分子的情况,我们只要没找到满足条件的三个值就输出"Impossible"。

代码语言:javascript
复制
//cf 334B
//2013-09-19-15.57
#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    int a, b, c;
    while (scanf("%d %d %d", &a, &b, &c) != EOF)
    {
        int flag = 1;
        for (int i = 0; i <= a; i++)
        {
            int tb = i, tc = a-i;
            if (tb > c)
                continue;
            int ta = c - tb;
            if (b == ta + tc)
            {
                printf("%d %d %d\n", tc, ta, tb);
                flag = 0;
                break;
            }
        }
        if (flag)
            puts("Impossible");
    }
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档