| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
贴我的思路和代码,WA但是找不到错。。初始所有字母权为0。
首先,把even的项中所有字母的权赋为10,表示排除它们。
然后,对up的项中的字母,若权不是10,且字母在左边的话,权减1;字母在右边的话,权加1。
对down的项同样的方法,相反处理。
如果权是负的,但是又被加1,则把该字母权赋为10。如果权是正的,但是被又减1,则把该字母权赋为10。排除他们。
最后,比较没有被排除的数的权,从中找出绝对值最大的,就是要找的字母。假如它的权大于0,就是它轻,假如它的权小于0,就是它重。
这个方法对discuss里面的数据和题目给的数据都测试过了,到底错在哪里??
#include <iostream>
#include <math.h>
using namespace std;
int main() {
int number;
cin >> number;
for(int w = 0; w < number; w++) {
int coin[12] = {0};
char left[3][13] = {0};
char right[3][13] = {0};
char state[3][4];
int j;
cin >> left[0] >> right[0] >> state[0];
cin >> left[1] >> right[1] >> state[1];
cin >> left[2] >> right[2] >> state[2];
for(j = 0; j < 3; j++)
if(state[j][0] == 'e') {
for(int i = 0; i < 13 && left[j][i] != 0; i++) {
coin[int(left[j][i]-'A')] = 10;
coin[int(right[j][i]-'A')] = 10;
}
}
for(j = 0; j < 3; j++)
if(state[j][0] == 'u')
for(int i = 0; i < 13 && left[j][i] != 0; i++) {
if(coin[int(left[j][i]-'A')] != 10)
if(coin[int(left[j][i]-'A')] > 0)
coin[int(left[j][i]-'A')] = 10;
else
coin[int(left[j][i]-'A')]--;
if(coin[int(right[j][i]-'A')] != 10)
if(coin[int(right[j][i]-'A')] < 0)
coin[int(right[j][i]-'A')] = 10;
else
coin[int(right[j][i]-'A')]++;
}
else if(state[j][0] == 'd')
for(int i = 0; i < 13 && left[j][i] != 0; i++) {
if(coin[int(right[j][i]-'A')] != 10)
if(coin[int(right[j][i]-'A')] > 0)
coin[int(right[j][i]-'A')] = 10;
else
coin[int(right[j][i]-'A')]--;
if(coin[int(left[j][i]-'A')] != 10)
if(coin[int(left[j][i]-'A')] < 0)
coin[int(left[j][i]-'A')] = 10;
else
coin[int(left[j][i]-'A')]++;
}
int temp = 0;
int id = 0;
for(int i = 0; i < 12; i++)
if(coin[i] != 10 && coin[i] != 0 && abs(coin[i]) > temp) {
id = i;
temp = abs(coin[i]);
}
if(coin[id] > 0)
printf("%c is the counterfeit coin and it is light.\n", id+'A');
else
printf("%c is the counterfeit coin and it is heavy.\n", id+'A');
}
for(;;);
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator