답안 #699940

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
699940 2023-02-18T11:20:35 Z Nuraly_Serikbay Fountain (eJOI20_fountain) C++14
60 / 100
1500 ms 6324 KB
//#include <bits/stdc++.h>
#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <cassert>
#include <iomanip>
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <fstream>
#include <unordered_map>

using namespace std;

#define int long long
#define pb push_back
#define S second
#define F first

const int N = 2e5 + 5;
const int INF = 1e18 - 1;
const int MOD = 1e9 + 7;

int n, d[N], v[N];
int q, p[N]; 


signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> q;
    int ok = 0;
    for (int i = 1; i <= n; ++ i) {
    	cin >> d[i] >> v[i];    
   		if (d[i] <= d[i - 1]) ok = 1;
   		p[i] = p[i - 1] + v[i];
   	}
   	if (!ok) {
   		while (q --) {
   			int st, vl, res = 0;
   			cin >> st >> vl;
   			int l = st, r = n;
   			if (p[n] - p[st - 1] < vl) {
   				cout << "0\n";
   				continue;
   			}
   			while (l <= r) {
   				int mid = (l + r) >> 1;
   				if (p[mid] - p[st - 1] >= vl) r = mid - 1, res = mid;
   				else l = mid + 1;
   			} 
   			cout << res << '\n';
   		}
   		return 0;
   	}
    while (q --) {
        int r, vl;
        cin >> r >> vl;
        int mx = -1, got = 0, res = 0;
        for (int i = r; i <= n; ++ i) {
            if (mx < d[i]) {
            	mx = d[i];
                got += v[i];
                if (got >= vl) {
                    res = i;
                    break;
                }
            }
        }
        cout << res << '\n';
    }
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 2 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 68 ms 4120 KB Output is correct
2 Correct 69 ms 6324 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 2 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 68 ms 4120 KB Output is correct
9 Correct 69 ms 6324 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Execution timed out 1580 ms 3272 KB Time limit exceeded
12 Halted 0 ms 0 KB -