Afişează mesaje
|
Pagini: [1] 2
|
21
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva educationala / Răspuns: 014 Parcurgere DFS - componente conexe
|
: Octombrie 29, 2013, 18:33:56
|
Algoritmul este exact acelasi cu sursa de 50 de puncte...si totusi primesc doar 5 ...ma poate lamuri cineva? ,Am incercat sa implementez si listele de adiacenta si primesc doar 10 puncte.. #include <iostream> #include <cstdio> #define Nmax 1001 using namespace std; int n,i,j,cmp=0; int a[Nmax][Nmax]; bool viz[Nmax]; void citire(int &n) { int m; freopen("dfs.in","r",stdin); freopen("dfs.out","w",stdout); scanf("%d %d",&n,&m); int x,y; for(i=1;i<=m;++i) { scanf("%d %d",&x,&y); a a[y] } } void dfs(int x) { viz for(i=1;i<=n;++i) if (!viz && a} int main() { citire(n); for(i=1;i<=n;++i) if (!viz) {++cmp;dfs(i);} printf("%d",cmp); return 0; }
|
|
|
24
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 1216 Crescator
|
: Aprilie 09, 2013, 10:34:24
|
Cod: #include <iostream> #include <fstream> using namespace std; ifstream f("crescator.in"); ofstream g("crescator.out"); int main() { int n,v[100000],i,max=1,s,j,nr; bool ok; f>>n; for(i=1; i<=n; i++) f>>v; f.close(); s=n; for(i=1; i<=n-1; i++) { j=i;ok=1;nr=0; do { j++; if (v[j]>v[j-1]) { s++; nr++;} else ok=0; if (nr>max) max=nr; } while (ok); } if (max>1) max++; g<<s<<" "<<max; g.close(); return 0; } Obtin doar 40 de puncte..complexitatea e cu mult mai mica decat O(nxn).O mica idee cineva?
|
|
|
|