Afişează mesaje
|
Pagini: [1]
|
3
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 357 Editor
|
: Noiembrie 07, 2014, 13:01:15
|
Are cineva idee de ce aceasta rezolvare primeste sigsev pe toate testele? #include <stdio.h> #include <stdlib.h> char sir[600010],c; int index,rotdesc,patdesc,erori,t; int main() { freopen("editor.in","r",stdin); freopen("editor.out","w",stdout); scanf("%d",&t); while(t) { scanf(" %c",&c); while(c!= 'E') { if(c=='*'){ if(index >0) index--; } else {index++; sir[index]=c; } scanf(" %c",&c); } int i=1; while(!erori && i<=index && i<600000) { if(sir[i]=='(') rotdesc++; if(sir[i]==')') rotdesc--; if(sir[i]=='[') patdesc++; if(sir[i]==']') patdesc--; if(rotdesc < 0 || patdesc < 0) erori=1; i++; } if(!rotdesc && !patdesc) printf(":)\n"); else printf(":(\n"); t--; index=0; rotdesc=0; patdesc=0; erori=0; } return 0; }
|
|
|
6
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 005 Potrivirea sirurilor
|
: Ianuarie 12, 2010, 10:44:35
|
Am o mica problema la sursa Rabin Karp propusa. La linia 55 si anume: hash1 = ((hash1 - (B[i - NA] * P1) % MOD1 + MOD1) * P + B[ i]) % MOD1;
nu inteleg rostul acelui +MOD1 pentru ca atunci cand facem modulo MOD1 acel +MOD1 ar trebui sa fie echivalent cu +0. Am incercat sa inlocuiesc respectiva linie cu: hash1 = ((hash1 - (B[i - NA] * P1) % MOD1) * P + B[ i]) % MOD1; iar rezultatul a fost ca mi-ai iesit foarte putine teste. Imi poate explica cineva cu ce influenteaza acel MOD1?
[editat de moderator] atentie la "[ i]" (fara spatiu), care este un tag special
|
|
|
|