您的位置:首页 > 其它

CodeForces Round #279 (Div.2)

2014-11-23 23:23 399 查看
A:

题意:

有三个项目和n个学生,每个学生都擅长其中一个项目,现在要组成三个人的队伍,其中每个人恰好擅长其中一门,问能组成多少支队伍。

分析:

最多能组成的队伍的个数就是擅长项目里的最少学生。

#include <cstdio>
#include <string>
#include <iostream>
using namespace std;

const int maxn = 1000000 + 10;
int mas[maxn];

int main()
{
//freopen("Cin.txt", "r", stdin);
ios::sync_with_stdio(false);
string s;
int a, b;
cin >> s >> a >> b;
int tmp = 1;
mas[s.size()] = 0;
for(int i = (int)s.size()-1; i >= 0; --i)
{
mas[i] = mas[i+1] + tmp * (s[i] - '0');
mas[i] = mas[i] % b;
tmp *= 10;
tmp = tmp % b;
}

tmp = 0;
for(int i = 0; i < (int)s.size()-1; ++i)
{
tmp = tmp * 10 + (s[i] - '0');
tmp %= a;
if(tmp == 0 && s[i+1] != '0') //²»ÄÜÓÐÇ°µ¼0
{
if(mas[i+1] == 0)
{
cout << "YES\n";
cout << s.substr(0, i+1) << "\n";
cout << s.substr(i+1, s.size()-i-1) << "\n";
return 0;
}
}
}
cout << "NO\n";

return 0;
}


代码君
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: