Submission #345076

#TimeUsernameProblemLanguageResultExecution timeMemory
345076casperwangTropical Garden (IOI11_garden)C++14
0 / 100
12 ms364 KiB
#include "garden.h"
#include "gardenlib.h"
#include <bits/stdc++.h>
#define All(x) x.begin(), x.end()
#define pb emplace_back
#define pii pair<int,int>
#define ff first
#define ss second
using namespace std;
#define debug(args...) kout("[ " + string(#args) + " ]", args)
void kout() { cerr << endl; }
template <class T, class ...U> void kout(T a, U ...b) { cerr << a << ' ',kout(b...); }
template <class T> void pary(T L, T R) { while (L != R) cerr << *L << " \n"[++L==R]; }

const int MAXN = 150000;
const int MAXQ = 2000;

void count_routes(int N, int M, int P, int R[MAXN][2], int Q, int G[MAXQ]) {
  vector<vector<pii>> path(N);
  for (int i = 0; i < M; i++) {
    path[R[i][0]].pb(0, R[i][1]);
    path[R[i][1]].pb(0, R[i][0]);
  }
  vector <pii> K(Q);
  for (int i = 0; i < Q; i++) {
    K[i].ff = G[i];
    K[i].ss = i;
  }
  sort(All(K));
  vector <int> ans(N);
  for (int i = 0; i < N; i++) {
    for (int j = 0; j < N; j++) {
      for (int k = 0; k < path[j].size(); k++) {
        path[j][k].ff = 0;
      }
    }
    int cur = i, now = 0;
    for (int q = 0; q < Q; q++) {
      while (now < K[q].ff) {
        bool flag = 1;
        for (int j = 1; j < path[cur].size(); j++)
          flag &= path[cur][j].ff >= path[cur][0].ff;
        int id = (flag ? 0 : 1);
        path[cur][id].ff++;
        cur = path[cur][id].ss;
        now++;
      }
      debug(cur);
      if (cur == P) ans[K[q].ss]++;
    }
  }
  for (int q = 0; q < Q; q++) {
    answer(ans[q]);
  }
  return;
}

Compilation message (stderr)

garden.cpp: In function 'void count_routes(int, int, int, int (*)[2], int, int*)':
garden.cpp:33:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |       for (int k = 0; k < path[j].size(); k++) {
      |                       ~~^~~~~~~~~~~~~~~~
garden.cpp:41:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |         for (int j = 1; j < path[cur].size(); j++)
      |                         ~~^~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...