Submission #817050

#TimeUsernameProblemLanguageResultExecution timeMemory
817050vjudge1Split the Attractions (IOI19_split)C++17
0 / 100
3 ms6588 KiB
#include "split.h" #include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> #include <vector> #include <set> #include <map> #include <unordered_set> #include <unordered_map> #include <queue> #include <ctime> #include <cassert> #include <complex> #include <string> #include <cstring> #include <chrono> #include <random> #include <bitset> #include <array> #include <iomanip> using namespace std; const int nax = (int)200'000; vector<int>adj[nax]; vector<int>color(nax, 0); vector<int>parent(nax, 0); vector<int>cyc; void dfs(int u, int p){ if (color[u] == 2)return; //cout << u << " " << p << endl; if (color[u] == 1){ //cyc.push_back(u); if (!cyc.empty())return; int k = p; while(k != u){ cyc.push_back(k); k = parent[k]; } cyc.push_back(u); //cout << 1<<endl; return; } color[u] = 1; parent[u] = p; for(auto x : adj[u]){ if (x == p)continue; dfs(x,u); } color[u] = 2; } vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) { if (n == 3){ return {1,2,3}; } for (int i = 0; i < p.size(); i++){ adj[p[i]].push_back(q[i]); adj[q[i]].push_back(p[i]); } dfs(0,-1); vector<int>res(n); if (cyc.empty()){ for (int i = 0; i < a; i++)res[i] = 1; for (int i = a; i < b + a; i++)res[i] = 2; for (int i = b; i < c + b + a; i++)res[i] = 3; return res; }else{ for (int i = 0; i < n; i++)color[i] = 0; for (int i : cyc){ // cout << i << " "; color[i] = 1; res[i] = 1; } //cout << endl; bool ok = 0; for (int i = 0; i < n; i++){ if (!color[i]){ res[i] = 2; ok = 1; } } res[cyc[0]] = 3; if (!ok)res[cyc[1]] = 2; } return res; }

Compilation message (stderr)

split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:60:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |  for (int i = 0; i < p.size(); i++){
      |                  ~~^~~~~~~~~~
#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...