Pagini recente » Cod sursa (job #243763) | Cod sursa (job #1790626) | Cod sursa (job #2578289) | Cod sursa (job #663119) | Cod sursa (job #963717)
Cod sursa(job #963717)
#include<cstdio>
#include<cstring>
#include<algorithm>
#define FOR(i,a,b)\
for(int i = (int)a; i <= (int)b; ++i)
#define infile "monede.in"
#define outfile "monede.out"
#define lMax 55
using namespace std;
struct cantarire{
char st[lMax], dr[lMax];
bool isEqual;
bool operator < (const cantarire &that)const{
return isEqual < that.isEqual;
}
} C[3];
bool isGood[12];
int weight[12];
char SOL;
void read(){
freopen(infile, "r", stdin);
char s[lMax];
FOR(i,0,2){
scanf("%s %s ", C[i].st, C[i].dr);
gets(s);
if(!strcmp(s, "egal"))
C[i].isEqual = true;
else if(!strcmp(s, "sus"))
swap(C[i].st, C[i].dr);
}
fclose(stdin);
}
bool isUnique(int letter){
FOR(i,0,11)
if(i != letter && weight[i] == weight[letter])
return false;
return true;
}
void solve(){
sort(C, C + 3);
FOR(i,0,2){
if(C[i].isEqual){
FOR(j, 0, strlen(C[i].st) - 1)
isGood[C[i].st[j] - 'A'] = true;
FOR(j, 0, strlen(C[i].dr) - 1)
isGood[C[i].dr[j] - 'A'] = true;
continue;
}
FOR(j, 0, strlen(C[i].st) - 1)
weight[C[i].st[j] - 'A'] --;
FOR(j, 0, strlen(C[i].dr) - 1)
weight[C[i].dr[j] - 'A'] ++;
}
FOR(i,0,11){
if(isGood[i])
continue;
if((isUnique(i) && abs(weight[i]) > abs(weight[SOL - 'A'])) || !SOL)
SOL = 'A' + i;
}
}
void print(){
freopen(outfile, "w", stdout);
printf("%c este moneda contrafacuta si este mai %s.\n", SOL, (weight[SOL - 'A'] < 0) ? "usoara" : "grea");
fclose(stdout);
}
int main(){
read();
solve();
print();
return 0;
}