Submission #185381

#TimeUsernameProblemLanguageResultExecution timeMemory
185381Ruxandra985Genetics (BOI18_genetics)C++14
100 / 100
478 ms17016 KiB
#include <bits/stdc++.h> #define MOD 1000000007 using namespace std; long long sum[4110][5]; char a[4110][4110]; int convert (char c){ if (c == 'A') return 0; if (c == 'C') return 1; if (c == 'G') return 2; return 3; } int check (int x , int n , int m, int k){ int i , j , dif; for (i=1;i<=n;i++){ if (i == x) continue; dif = 0; for (j=1;j<=m;j++){ if (a[x][j] != a[i][j]) dif++; if (dif > k) return 0; } if (dif != k) return 0; } return 1; } int main() { FILE *fin = stdin; FILE *fout = stdout; int n , m , k , i , j , curr , summ; fscanf (fin,"%d%d%d\n",&n,&m,&k); for (i=1;i<=n;i++){ fgets (a[i] + 1 , 5000 , fin); for (j=1;j<=m;j++){ sum[j][convert(a[i][j])] = (sum[j][convert(a[i][j])] + i)%MOD; } } for (curr = 1 ; curr <= n ; curr ++){ summ = 0; for (i=1;i<=m;i++){ summ = (summ + sum[i][0] + sum[i][1] + sum[i][2] + sum[i][3])%MOD; summ = ((summ - sum[i][convert(a[curr][i])]) % MOD + MOD )%MOD; } if (summ == (((long long) k * ( ( ((long long)n * (n+1)) / 2 ) %MOD - curr)%MOD )%MOD + MOD)%MOD && check(curr , n, m , k)) { fprintf (fout,"%d ",curr); return 0; } } return 0; }

Compilation message (stderr)

genetics.cpp: In function 'int main()':
genetics.cpp:42:12: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     fscanf (fin,"%d%d%d\n",&n,&m,&k);
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
genetics.cpp:44:15: warning: ignoring return value of 'char* fgets(char*, int, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
         fgets (a[i] + 1 , 5000 , fin);
         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...