Page 1 of 1
912 - Live from Mars
Posted: Wed Aug 22, 2007 12:41 am
by breech
Can someone tell me what their ACC code gives for the following input?
Code: Select all
3
1
2
3
4
5
6
3
A
1
2
1
2
3
3
A
2
2
1
D
1
Thanks
Posted: Wed Aug 22, 2007 3:52 pm
by Jan
My accepted code returns..
Output:
Posted: Wed Aug 22, 2007 11:20 pm
by breech
Thanks. My code gives the same answers, but I'm still getting WA.
Anyone got any tricky inputs for this problem they want to share?
Re: 912 - Live from Mars
Posted: Thu Mar 19, 2009 6:58 pm
by dongle_xxzp
Hello to all,
I have been stuck for over 1 week in this problem and is starting to get frustrating).
I have some questions on the problem.
Does the mutant dna elements be a positive integer ranging from 1 to 200 and always starting from 1?
Could someone please explain why the output for this test case:
is (generated from uvatoolkit.com)
Shouldn't it be
since A->4 means 5 also becomes A
and B->7 means 5 also becomes B
thus there is a collision and hence it both sequences cannot mutate into a common sequence?
Re: 912 - Live from Mars
Posted: Tue Aug 24, 2010 11:44 pm
by Leonid
My AC solution prints "NO" for the case above. uvatoolkit solution may be doing some assumptions about the input which aren't satisfied in the test case, or it could be just a bug anywhere in the solution.
Re: 912 - Live from Mars
Posted: Tue Dec 03, 2013 2:42 am
by brianfry713
Input:
Code: Select all
7
3
D
4
C
B
6
9
C
4
4
A
D
D
C
5
7
5
B
4
D
2
A
5
B
3
6
C
A
C
C
6
D
3
5
5
B
B
8
4
B
7
3
1
D
1
1
8
9
B
C
B
A
9
B
A
5
D
D
4
2
6
D
A
A
B
5
7
A
B
C
B
1
2
2
A
3
A
7
C
8
B
7
D
3
1
3
3
5
2
6
D
C
6
7
C
4
10
A
9
9
B
A
6
5
2
5
9
C
B
5
A
7
C
4
C
5
2
7
7
C
8
1
C
B
D
B
7
6
3
B
B
D
6
6
A
B
6
3
8
D
C
D
9
D
B
3
6
C
B
8
7
2
1
A
7
1
1
C
2
5
2
4
6
6
1
C
1
B
4
B
D
A
B
2
2
D
1
4
B
8
3
2
B
5
2
B
A
2
9
9
C
5
C
C
A
A
10
1
B
1
C
A
7
9
D
B
1
2
C
2
6
A
D
7
1
7
3
2
9
D
C
B
6
B
2
C
2
7
B
D
1
C
C
2
3
1
6
D
8
3
8
7
5
C
A
A
7
7
3
C
A
7
4
2
A
10
A
D
7
9
A
9
4
9
C
D
B
5
A
A
8
B
8
6
A
B
8
B
B
B
6
C
A
7
1
8
9
9
2
9
9
B
2
9
B
3
5
2
C
3
6
2
C
B
4
A
5
C
5
6
C
B
9
D
5
A
1
2
3
9
7
A
8
A
4
A
7
B
1
1
B
9
A
2
A
6
9
B
D
9
D
8
C
4
2
9
B
5
5
B
9
4
6
D
A
5
D
C
D
9
C
5
B
C
D
1
C
5
4
2
1
D
1
7
5
3
D
4
D
C
2
1
D
5
C
3
C
C
B
C
D
7
10
B
3
1
C
3
3
4
9
C
B
D
A
B
A
A
A
A
B
A
5
10
5
B
7
7
6
A
4
B
3
4
B
D
1
7
C
B
6
5
8
A
7
A
4
C
D
5
7
B
C
D
D
2
7
D
B
9
B
A
1
A
A
6
9
D
B
B
6
B
9
3
B
5
D
B
2
4
9
B
B
7
D
8
8
8
B
3
5
A
1
5
B
9
3
B
3
B
C
D
4
6
D
8
B
C
2
1
D
B
D
5
5
C
5
B
D
D
C
9
1
A
5
3
2
D
C
D
2
C
2
B
D
C
7
4
A
B
2
D
D
A
1
7
8
B
6
2
4
B
2
D
1
D
4
1
5
4
2
B
A
9
B
D
C
8
5
9
1
C
5
6
C
C
6
D
1
3
3
D
2
2
5
C
3
8
2
9
C
B
2
5
3
8
C
A
B
7
A
D
A
8
3
7
9
B
2
D
C
6
D
B
6
4
D
C
2
9
D
5
B
A
8
5
B
3
3
5
D
C
2
A
4
1
9
C
3
8
A
3
9
4
B
D
A
2
3
A
4
A
5
8
6
6
3
6
D
D
5
1
B
A
3
A
A
D
3
B
D
5
D
D
5
1
A
8
6
5
5
D
C
3
B
6
D
D
4
3
C
8
B
A
6
5
1
B
B
C
9
7
A
7
6
2
4
7
6
A
9
2
A
5
B
D
6
9
A
B
6
9
D
2
A
3
4
B
6
1
3
D
C
C
D
6
C
C
B
A
4
D
C
9
5
C
A
B
2
3
1
4
3
B
9
D
8
1
8
D
C
3
7
3
A
2
D
B
2
5
B
6
7
8
3
B
3
9
A
8
B
C
9
2
B
9
2
C
C
9
8
D
A
D
B
B
3
4
2
7
9
2
D
1
2
5
D
5
6
D
4
6
7
3
D
D
7
B
5
8
9
A
5
A
4
6
A
A
C
1
6
3
8
7
D
B
4
8
5
D
2
6
7
D
A
6
4
4
C
5
1
A
A
7
4
A
8
5
3
8
7
6
3
A
B
7
D
5
8
A
B
D
9
B
C
6
D
C
D
1
6
9
5
3
7
D
D
8
4
3
9
7
5
2
B
B
A
8
C
A
8
C
C
D
C
B
7
B
B
A
2
D
B
4
9
4
7
8
D
C
5
4
B
8
1
D
B
5
C
A
2
C
B
8
1
4
3
4
D
6
3
B
B
B
1
6
D
A
4
A
6
D
D
B
B
B
C
7
B
D
B
B
2
5
4
D
5
B
A
2
D
A
1
C
10
3
8
A
D
A
6
B
7
7
5
2
2
6
9
3
5
4
1
5
B
5
A
A
6
C
9
6
2
2
C
A
7
5
A
6
6
A
9
C
D
B
7
B
3
D
9
6
2
B
B
D
1
5
5
7
1
9
D
D
6
2
D
3
B
A
1
B
4
B
A
A
A
7
C
A
D
B
5
3
D
C
D
D
5
4
5
9
7
5
C
4
D
4
A
B
8
2
D
C
A
A
A
9
A
C
D
7
B
A
4
D
B
D
9
D
3
1
4
A
6
5
10
2
1
9
A
C
A
D
D
3
B
4
8
A
2
2
5
8
D
C
B
7
4
B
1
C
5
5
C
D
2
B
8
5
9
A
9
5
2
A
2
C
A
B
D
2
6
D
C
A
1
A
4
4
B
4
D
6
6
4
2
2
5
5
5
D
5
C
8
A
C
9
B
3
D
8
C
A
B
D
B
1
C
B
8
C
5
4
B
A
C
C
9
C
A
D
C
B
8
D
A
3
A
5
C
8
B
8
D
4
9
3
C
B
5
8
1
4
4
3
D
B
7
3
A
9
A
4
D
C
7
C
1
C
9
6
4
A
D
2
3
A
A
1
D
10
3
4
7
D
C
8
D
C
8
4
A
D
6
C
C
5
1
B
C
2
5
7
3
6
6
7
7
6
A
9
B
8
D
9
7
7
2
B
B
1
5
C
2
9
C
5
3
5
3
4
A
C
9
A
B
AC output:
Code: Select all
NO
NO
NO
NO
NO
NO
YES
1 C
3 D
5 C
6 D
7 D
NO
NO
NO
YES
2 B
7 C
YES
7 A
YES
1 C
YES
NO
YES
4 B
NO
NO
NO
NO
YES
6 D
NO
NO
NO
NO
NO
NO
NO
YES
7 D
YES
1 D
4 D
5 D
NO
NO
NO
NO
NO
YES
4 B
9 B
NO
YES
4 B
6 C
NO
YES
5 A
YES
2 D
NO
NO
NO
NO
YES
2 C
NO
NO
NO
NO
YES
2 B
4 A
9 D
YES
5 A
6 A
NO
NO
YES
8 A
NO
NO
NO
NO
NO
YES
1 B
3 D
NO
NO
NO
YES
3 B
4 D
6 B
7 B
NO
YES
NO
YES
1 A
4 A
5 A
8 A
NO
YES
1 D
3 C
5 D
6 D
7 D
YES
5 A
7 B
9 B
NO
NO
NO
NO
NO
NO
YES
2 A
6 A
9 A
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
2 D
4 D
5 D
6 D
NO
NO
NO
YES
1 B
8 C
NO
YES
1 D
6 C
NO
NO
YES
3 A
6 A
7 B
9 A
NO
NO
912 - Live From Mars
Posted: Wed May 14, 2014 4:37 pm
by Drathus
Hey guys, I'm having a lot of trouble with this problem. I have tested my code against brianfry's big data set, and have gotten them all correct. But I still am getting WA. I think it has to do with newlines. Any ideas? Please help.
Code: Select all
#include <iostream>
#include <fstream>
#include <sstream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <memory.h>
#include <utility>
#include <stack>
#include <queue>
#include <vector>
#include <ctime>
#include <algorithm>
#include <map>
#define REP(i, a, b) \
for(int i = int(a); i <= int(b); i++)
using namespace std;
typedef long long ll;
//Modified Halim's
vector<int> pset(1000);
void initSet(int _size) {pset.resize(_size); REP(i, 0, _size - 1) pset[i] = i; }
int findSet(int i) { return pset[i] == i ? i : (pset[i] = findSet(pset[i])); } //Gets representative for node i, and performs path compression
void unionSet(int i, int j) { pset[findSet(i)] = findSet(j); }
bool isSameSet(int i, int j) { return findSet(i) == findSet(j); }
int numberOfSets() { int n = 0; REP(i, 0, pset.size() - 1) n += (findSet(i) == i); return n; }
int sizeOfSet(int i) { int s = 0; REP(j, 0, pset.size() - 1) s += (findSet(i) == findSet(j)); return s; }
map<int, char> mut;
map<char, int> invMut;
int main(){
//FILE * fout = fopen("data.out", "w");
int n, cnum = 0, mN = 10;
char c, s[50];
while(gets(s) && strcmp(s, "") != 0){
if(cnum++) printf("\n\n");
sscanf(s, "%d", &n);
string s1 = "", s2 = "";
for(int i = 0; i < 2 * n; i++){
scanf("%c", &c);
if(i < n) s1 += c;
else s2 += c;
gets(s);
}
for(int i = 0; i < mN; i++){
mut[i] = '-';
invMut['A' + i] = -1;
}
initSet(mN);
bool flag = false, c1, c2;
for(int i = 0; i < n; i++){
//cout << endl << i << " " << s1[i] << " " << s2[i] << endl;
if(s1[i] == s2[i]) continue;
c1 = s1[i] >= 'A' && s1[i] <= 'Z';
c2 = s2[i] >= 'A' && s2[i] <= 'Z';
int v1 = -1, v2 = -1;
if(!c1) v1 = s1[i] - '1';
if(!c2) v2 = s2[i] - '1';
//cout << c1 << " " << c2 << endl << v1 << " " << v2 << endl;;
if(c1 && c2){
if(s1[i] != s2[i]){
flag = 1;
break;
}
}
if(!c1 && !c2){
if(findSet(v1) == findSet(v2)) continue;
else if(mut[findSet(v1)] == '-'){
unionSet(v1, v2);
}
else if(mut[findSet(v2)] == '-'){
unionSet(v2, v1);
}
else if(mut[findSet(v1)] != mut[findSet(v2)]){
flag = 1;
break;
}
}
else if(c1){
if(mut[findSet(v2)] != '-' && mut[findSet(v2)] != s1[i]){
flag = 1;
break;
}
else{
int mergeTo = invMut[s1[i]];
if(mergeTo != -1){
unionSet(v2, mergeTo);
invMut[s1[i]] = findSet(v2);
}
else{
mut[findSet(v2)] = s1[i];
invMut[s1[i]] = findSet(v2);
}
}
}
else {
if(mut[findSet(v1)] != '-' && mut[findSet(v1)] != s1[i]){
flag = 1;
break;
}
else{
int mergeTo = invMut[s2[i]];
if(mergeTo != -1){
unionSet(v1, mergeTo);
invMut[s2[i]] = findSet(v1);
}
else{
mut[findSet(v1)] = s2[i];
invMut[s2[i]] = findSet(v1);
}
}
}
/*for(int j = 0; j < 8; j++){
//if(mut[findSet(j)] != '-')
printf("%d %d %c\n", (j + 1), findSet(j) + 1, mut[findSet(j)]);
}*/
}
if(flag){
printf("NO");
}
else{
printf("YES");
for(int j = 0; j < mN; j++){
if(mut[findSet(j)] != '-'){
printf("\n");
printf("%d %c", (j + 1), mut[findSet(j)]);
}
}
}
if(!gets(s)) return 0;
}
}
Re: 912 - Live From Mars
Posted: Wed May 14, 2014 8:20 pm
by brianfry713
Re: 912 - Live From Mars
Posted: Thu May 15, 2014 12:45 am
by Drathus
Removed after AC
Re: 912 - Live From Mars
Posted: Thu May 15, 2014 1:06 am
by brianfry713
Always print a newline char at the end of the last line.
Re: 912 - Live From Mars
Posted: Thu May 15, 2014 1:46 am
by brianfry713
It looks like the judge's input doesn't follow the problem statement and you can't read line by line in this problem. Try reading the input as tokens or strings.