Afişează mesaje
|
Pagini: [1]
|
6
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 209 Sir
|
: Martie 07, 2016, 21:46:15
|
Am si eu o intrebare. Functiile consuma mult timp? Adica m-am chinuit o gramada sa iau 100 de puncte la problema asta, chiar daca o faceam in O(N). Am incercat pana si parsarea si m-a ajutat sa ajung de la 80 la 90, tot am avut 2 teste cu TLE. Apoi m-am gandit sa scot o functie si am ajuns de la peste 0,3 secunde la 8ms. Nu prea inteleg de ce.
|
|
|
8
|
infoarena - concursuri, probleme, evaluator, articole / .CAMPION / Could not evaluate output
|
: Februarie 28, 2016, 00:11:07
|
Nu stiu daca postez unde trebuie, dar am o problema ca site-ul .campion pe care am observat-o la mai multi. Dupa indelungata perioada in care site-ul a fost picat,acum la diverse probleme primesc eroare "Could not evaluate output", chiar si pe exemple . Pe infoarena primesc 100 de puncte la ele si chiar nu pricep care este problema. 
|
|
|
14
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: OJI 2016
|
: Ianuarie 13, 2016, 00:45:48
|
Salut! Parca pe 12 martie am vazut ca se tine, dar nu e un raspuns corect 100%. In materie intra operatii cu siruri de caractere, vectori, tablouri bidimensionale, numere mari, lucruri de genul. Da, in principiu poti folosi orice,atata timp cat nu iesi din STL.
|
|
|
18
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 564 Rfinv
|
: Ianuarie 06, 2016, 00:41:10
|
Daca se mai uita cineva la problema aceasta, am si eu nevoie de ajutor. Imi merge pe ambele exemple(si cel din enunt si cel de la "fireatmyself") dar iau 0 puncte. Am incercat si metoda lui Dastas, merge pe exemple, dar tot 0 puncte iau  #include <iostream> #include <stdio.h> #define infile "rfinv.in" #define outfile "rfinv.out" #define N 51 #define inf 100001
using namespace std;
int c[N][N],n,m,t,a[N][N];
FILE * in=fopen(infile,"r"); FILE * out=fopen(outfile,"w");
void cit() { fscanf(in,"%d %d\n",&n,&m); int i,j; for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) { a[i][j]=a[j][i]=inf; c[i][j]=c[j][i]=inf; } for(i=1;i<=m;i++) { int x,y; fscanf(in,"%d %d",&x,&y); a[x][y]=a[y][x]=1; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) { fscanf(in,"%d",&c[i][j]); if(a[i][j]) a[i][j]=c[i][j]; } }
void roy_floyd() { int i,j,k; for(k=1;k<=n;k++) for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(i!=j && j!=k && i!=k) a[i][j]=min(a[i][j],a[i][k]+a[k][j]); }
bool sol2() { int i,j,k,sw=0; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { sw=0; for(k=1;k<=n;k++) { if(c[i][j]>c[i][k]+c[k][j]) return 0; if(c[i][j]==c[i][k]+c[k][j]) sw=1; } if(!sw && a[i][j]==inf) return 0; } return 1; }
inline void verif() { int i,j; for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(a[i][j]!=c[i][j]) { fprintf(out,"NU"); return ; } fprintf(out,"DA"); }
int main() { int i; fscanf(in,"%d\n",&t); for(i=1;i<=t;i++) { cit(); roy_floyd(); verif(); /*if(sol2()) fprintf(out,"DA"); else fprintf(out,"NU");*/ fprintf(out,"\n"); } return 0; }
Sol2 este solutia lui Dastas
|
|
|
|