Submission #426910

#TimeUsernameProblemLanguageResultExecution timeMemory
426910oscar1fToy Train (IOI17_train)C++17
11 / 100
1244 ms1368 KiB
#include<bits/stdc++.h> /*#include <cstdio> #include <vector> #include <cassert>*/ #include "train.h" using namespace std; const int MAX_GARE=5000; int nbGare,nbChemin,nbBon,deb; vector<int> adja[MAX_GARE]; deque<int> aTraiter; int dv[MAX_GARE]; int charge[MAX_GARE]; void DFS(int pos) { if (dv[pos]!=deb+1) { dv[pos]=deb+1; for (int ivois=0;ivois<adja[pos].size();ivois++) { DFS(adja[pos][ivois]); } } else if (pos==deb) { charge[deb]=1; } } vector<int> who_wins(vector<int> posses, vector<int> recharge, vector<int> dep, vector<int> arriv) { vector<int> rep; rep.clear(); nbGare=posses.size(); for (int i=0;i<nbGare;i++) { rep.push_back(0); charge[i]=recharge[i]; } nbChemin=dep.size(); for (int i=0;i<nbChemin;i++) { adja[dep[i]].push_back(arriv[i]); } for (int i=0;i<nbGare;i++) { if (charge[i]==1) { charge[i]=0; deb=i; DFS(deb); } } for (int loop=0;loop<nbGare;loop++) { for (int i=0;i<nbGare;i++) { nbBon=0; for (int ivois=0;ivois<adja[i].size();ivois++) { if (charge[adja[i][ivois]]==1) { nbBon++; } } if (charge[i]==1) { rep[i]=1; } else if (posses[i]==1 and nbBon>=1) { rep[i]=1; charge[i]=1; } else if (nbBon==adja[i].size()) { rep[i]=1; charge[i]=1; } } } return rep; } /* int main() { int n, m; assert(2 == scanf("%d %d", &n, &m)); vector<int> a(n), r(n), u(m), v(m); for(int i = 0; i < n; i++) assert(1 == scanf("%d", &a[i])); for(int i = 0; i < n; i++) assert(1 == scanf("%d", &r[i])); for(int i = 0; i < m; i++) assert(2 == scanf("%d %d", &u[i], &v[i])); vector<int> res = who_wins(a, r, u, v); for(int i = 0; i < (int)res.size(); i++) printf(i ? " %d" : "%d", res[i]); printf("\n"); return 0; }*/

Compilation message (stderr)

train.cpp: In function 'void DFS(int)':
train.cpp:18:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |   for (int ivois=0;ivois<adja[pos].size();ivois++) {
      |                    ~~~~~^~~~~~~~~~~~~~~~~
train.cpp: In function 'std::vector<int> who_wins(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:49:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |    for (int ivois=0;ivois<adja[i].size();ivois++) {
      |                     ~~~~~^~~~~~~~~~~~~~~
train.cpp:61:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |    else if (nbBon==adja[i].size()) {
      |             ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...