Afişează mesaje
|
Pagini: [1]
|
1
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 564 Rfinv
|
: Noiembrie 11, 2013, 11:48:57
|
Imi poate explica, va rog, cineva care este motivul pentru care nu primesc punctaj pe sursa asta? #include<fstream> using namespace std; ifstream f("rfinv.in"); ofstream g("rfinv.out"); int t; int n,m; int a[51][51]; int b[51][51]; int i,j; int x,y; int ok; int r; int main() { f>>t; for(int k=1;k<=t;k++) { ok=0; f>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=b[i][j]=0; for(i=1;i<=m;i++) { f>>x>>y; a[x][y]=a[y][x]=1; } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { f>>r; b[i][j]=r; } } for(i=1;i<=n;i++) for(j=1;j<=n;j++) if((a[i][j]==0&&b[i][j]>0)||(a[i][j]>0&&b[i][j]==0)) ok=1; if(ok==0) g<<"DA"<<"\n"; else g<<"NU"<<"\n"; } return 0; }
|
|
|
2
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 198 Custi
|
: Iunie 13, 2013, 16:38:09
|
Iau 30 pe asta(TLE)... daca imi poate explica cineva ce trebuie sa mai modific pentru a da in timp. #include<fstream> using namespace std; ifstream f("custi.in"); ofstream g("custi.out"); int n,x,sum[1001][1001]; int i,j,k; int nr,nr1; int s; int main() { f>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { f>>x; if(x==1) nr1++; sum[i][j]=x+sum[i][j-1]+sum[i-1][j]-sum[i-1][j-1]; } g<<nr1<<"\n"; for(k=2;k<=n;k++) { nr=0; for(i=k;i<=n;i++) for(j=k;j<=n;j++) { s=sum[i][j] - sum[i-k][j] - sum[i][j-k] + sum[i-k][j-k]; if(s==(k*k)) nr++; } g<<nr<<"\n"; } return 0; }
|
|
|
3
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 132 Distante
|
: Mai 07, 2013, 08:50:26
|
Va rog frumos daca puteti sa ma ajutati putin. Am trimis o sursa care da 0 puncte. Treaba este ca, la primul test totul da bine si de la urmatoarele nu mai da corect. Cred ca are legatura cu folosirea succesiva a unor vectori. Oricum, daca imi puteti spune opinia voastra... Asta e sursa #include<fstream> #define inf 10001 using namespace std; ifstream f("distante.in"); ofstream g("distante.out"); struct muchie { long x,y,c; }q[100001]; long t; long n,m,s,gasit; long d[50001]; long v[50001]; int main() { long x,y,c; long ok; f>>t; for(long k=1;k<=t;k++) { gasit=0; f>>n>>m>>s; for(long j=1;j<=n;j++) f>>v[j]; for(long j=1;j<=m;j++) { f>>x>>y>>c; q[j].x=x; q[j].y=y; q[j].c=c; if(x==s) d[y]=c; if(y==s) d[x]=c; } for(long i=1;i<=n;i++) if(d[i]==0&&i!=s) d[i]=inf; do { ok=1; for(long i=1;i<=m;i++) if(d[q[i].y]>d[q[i].x]+q[i].c) { d[q[i].y]=d[q[i].x]+q[i].c; ok=0; } }while(!ok); /*for(long i=1;i<=n;i++) g<<d[i]<<" "; g<<"\n";*/ for(long i=1;i<=n;i++) if(d[i]!=v[i]) gasit=1; if(!gasit) g<<"DA"<<"\n"; else g<<"NU"<<"\n"; } return 0; }
Foloseste tag-ul [ code ] [/ code ] cand postezi cod.
|
|
|
5
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 002 Jocul Flip
|
: Ianuarie 04, 2013, 12:50:41
|
ideea e usoara,eu zic ca trebuie facut asa: 1:calculez suma de pe fiecare linie(linia i) si verific daca suma<suma*(-1).daca e asa inmultesti fiecare din termenii de pe linia i cu (-1); 2:calculez suma de pe fiecare coloana(coloana j) si verific daca suma<suma*(-1).daca e asa inmultesti fiecare din termenii de pe coloana j cu (-1); 3.explicatie:daca (-a)+b+(-c)=s,atunci a+(-b)+c=s*(-1);(s=(-a)+b+(-c);daca il inmultesti pe s cu (-1) este clar ca suma relatiei *(-1) este s(s cel nou)) acum nu stiu cat de rapid e acest algoritm,cred ca face mai mult de 60-70 de puncte(sper)
Exact asta a fost si ideea mea si am luat 20 de puncte pe ea...
|
|
|
|