답안 #1074406

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1074406 2024-08-25T10:19:56 Z Malix 열대 식물원 (Tropical Garden) (IOI11_garden) C++14
49 / 100
2588 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;
int k=0;
int p=log2(1000000000);
vector<vector<pii>> arr;

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)));
  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);
}


# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 1628 KB Output is correct
2 Correct 3 ms 1884 KB Output is correct
3 Correct 2 ms 2140 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 4 ms 2140 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 2 ms 2136 KB Output is correct
9 Correct 6 ms 2140 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 1628 KB Output is correct
2 Correct 3 ms 1884 KB Output is correct
3 Correct 2 ms 2140 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 4 ms 2140 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 2 ms 2136 KB Output is correct
9 Correct 6 ms 2140 KB Output is correct
10 Correct 0 ms 604 KB Output is correct
11 Correct 62 ms 39496 KB Output is correct
12 Correct 153 ms 66312 KB Output is correct
13 Runtime error 2588 ms 262144 KB Execution killed with signal 9
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 1628 KB Output is correct
2 Correct 3 ms 1884 KB Output is correct
3 Correct 2 ms 2140 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 4 ms 2140 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 2 ms 2136 KB Output is correct
9 Correct 6 ms 2140 KB Output is correct
10 Correct 0 ms 604 KB Output is correct
11 Correct 62 ms 39496 KB Output is correct
12 Correct 153 ms 66312 KB Output is correct
13 Runtime error 2588 ms 262144 KB Execution killed with signal 9
14 Halted 0 ms 0 KB -