제출 #1365921

#제출 시각아이디문제언어결과실행 시간메모리
1365921kmath628Fountain (eJOI20_fountain)C++20
30 / 100
113 ms14292 KiB
#include <bits/stdc++.h>
using namespace std;
int nxt[17][100009], vol[17][100009], c[100009];
int main(){
    int n,q,i,j,d,r,v;
    scanf("%d %d",&n,&q);
    vector<pair<int,int> > a;
    for(i=1;i<=n;i++){
        scanf("%d %d",&d,&c[i]);
        while(!a.empty() && a.back().second<d){
            nxt[0][a.back().first]=i;
            vol[0][a.back().first]=c[i];
            a.pop_back();
        }
        a.push_back(make_pair(i,d));
    }
    for(i=1;i<=16;i++){
        for(j=1;j<=n;j++){
            nxt[i][j]=nxt[i-1][nxt[i-1][j]];
            vol[i][j]=vol[i-1][j]+vol[i-1][nxt[i-1][j]];
        }
    }
    while(q--){
        scanf("%d %d",&r,&v);
        v-=c[r];
        for(i=16;i>=0;i--){
            if(vol[i][r]<=v){
                v-=vol[i][r];
                r=nxt[i][r];
            }
        }
        if(v>0) r=nxt[0][r];
        printf("%d\n",r);
    }
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

fountain.cpp: In function 'int main()':
fountain.cpp:6:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    6 |     scanf("%d %d",&n,&q);
      |     ~~~~~^~~~~~~~~~~~~~~
fountain.cpp:9:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |         scanf("%d %d",&d,&c[i]);
      |         ~~~~~^~~~~~~~~~~~~~~~~~
fountain.cpp:24:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   24 |         scanf("%d %d",&r,&v);
      |         ~~~~~^~~~~~~~~~~~~~~
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…