Submission #1074388

# Submission time Handle Problem Language Result Execution time Memory
1074388 2024-08-25T10:13:34 Z Malix Tropical Garden (IOI11_garden) C++14
49 / 100
201 ms 262144 KB
#include "garden.h"
#include "gardenlib.h"
#include <bits/stdc++.h>
using namespace std;

#define REP(a,b,c) for(int a=b;a<c;a++)
#define F first
#define S second
#define PB push_back
#define LSOne(s) ((s)&(-s))

typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vii;
typedef vector<vii> viii;
typedef pair<int,int> pi;
typedef vector<pi> pii;

vii a,b,c;
int k=0;
int p=log2(1000000000)+2;
vector<vector<pii>> arr,brr;

int solve(int x,int y){
  int t=0;
  while(y){
    int z=LSOne(y);
    pi tmp=arr[x][log2(z)+1][t];
    x=tmp.F;
    if(tmp.S==a[x][0])t=1;
    else t=0;
    y-=z;
  }
  return x;
}

void count_routes(int n, int m, int P, int R[][2], int Q, int G[])
{
  a.resize(n);
  REP(i,0,m){
    int x=R[i][0];
    int y=R[i][1];
    a[x].PB(y);
    a[y].PB(x);
  }
  arr.resize(n,vector<pii>(p+1,pii(2)));
  brr.resize(n,vector<pii>(p+1,pii(2)));
  REP(i,0,n){
    arr[i][1][0]={a[i][0],i};
    if(a[i].size()==1)arr[i][1][1]={a[i][0],i};
    else arr[i][1][1]={a[i][1],i};
  }
  //1 - came from larger
  REP(j,2,p+1)REP(i,0,n){
    pi x=arr[i][j-1][0];
    pi y=arr[i][j-1][1];
    if(x.S==a[x.F][0])arr[i][j][0]=arr[x.F][j-1][1];
    else arr[i][j][0]=arr[x.F][j-1][0];
    if(y.S==a[y.F][0])arr[i][j][1]=arr[y.F][j-1][1];
    else arr[i][j][1]=arr[y.F][j-1][0];
  }
  int ans=0;
  REP(i,0,n)if(solve(i,G[0])==P)ans++;
  answer(ans);
}


# Verdict Execution time Memory Grader output
1 Correct 3 ms 3160 KB Output is correct
2 Correct 3 ms 3676 KB Output is correct
3 Correct 3 ms 3932 KB Output is correct
4 Correct 1 ms 604 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 4 ms 3928 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 4 ms 3932 KB Output is correct
9 Correct 5 ms 4188 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 3160 KB Output is correct
2 Correct 3 ms 3676 KB Output is correct
3 Correct 3 ms 3932 KB Output is correct
4 Correct 1 ms 604 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 4 ms 3928 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 4 ms 3932 KB Output is correct
9 Correct 5 ms 4188 KB Output is correct
10 Correct 1 ms 600 KB Output is correct
11 Correct 107 ms 84552 KB Output is correct
12 Correct 201 ms 139088 KB Output is correct
13 Runtime error 179 ms 262144 KB Execution killed with signal 9
14 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 3160 KB Output is correct
2 Correct 3 ms 3676 KB Output is correct
3 Correct 3 ms 3932 KB Output is correct
4 Correct 1 ms 604 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 4 ms 3928 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 4 ms 3932 KB Output is correct
9 Correct 5 ms 4188 KB Output is correct
10 Correct 1 ms 600 KB Output is correct
11 Correct 107 ms 84552 KB Output is correct
12 Correct 201 ms 139088 KB Output is correct
13 Runtime error 179 ms 262144 KB Execution killed with signal 9
14 Halted 0 ms 0 KB -