답안 #47452

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
47452 2018-05-03T08:55:02 Z mirbek01 Worst Reporter 3 (JOI18_worst_reporter3) C++17
12 / 100
2000 ms 8472 KB
# include <bits/stdc++.h>

using namespace std;

const int N = 5e5 + 2;

long long n, q, d[N], p[1001][1001];

int main(){
      cin >> n >> q;

      int cn = 0;

      for(int i = 1; i <= n; i ++){
            cin >> d[i];
            if(d[i] == 1) cn ++;
      }

      if(cn == n){
            for(int i = 1; i <= q; i ++){
                  int t, l, r;
                  cin >> t >> l >> r;
                  int L = t - n, R = t;
                  if(l > R || L > r) {
                        cout << 0 << endl;
                        continue;
                  }
                  if(l <= L && R <= r){
                        cout << R - L + 1 << endl;
                        continue;
                  }
                  if(l <= L && L <= r){
                        cout << r - L + 1 << endl;
                        continue;
                  }
                  if(l <= R && R <= r){
                        cout << R - l + 1 << endl;
                        continue;
                  }
                  if(L <= l && r <= R){
                        cout << r - l + 1 << endl;
                        continue;
                  }
            }
            return 0;
      }

      for(int i = 0; i <= 1000; i ++){
            if(i == 0){
                  for(int j = 1; j <= n; j ++)
                        p[i][j] = -j;
            } else {
                  p[i][0] = i;
                  for(int j = 1; j <= n; j ++){
                        p[i][j] = p[i - 1][j];
                        if(p[i][j - 1] - p[i][j] > d[j])
                              p[i][j] = p[i][j - 1] - 1;
                  }
            }
      }

      for(int i = 1; i <= q; i ++){
            int t, l, r;
            cin >> t >> l >> r;
            int cn = 0;
            for(int j = 0; j <= n; j ++){
                  if(p[t][j] >= l && p[t][j] <= r) cn ++;
            }
            cout << cn << endl;
      }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1619 ms 7380 KB Output is correct
2 Execution timed out 2070 ms 7440 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 8272 KB Output is correct
2 Correct 12 ms 8304 KB Output is correct
3 Correct 11 ms 8328 KB Output is correct
4 Correct 33 ms 8424 KB Output is correct
5 Correct 12 ms 8472 KB Output is correct
6 Correct 12 ms 8472 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1619 ms 7380 KB Output is correct
2 Execution timed out 2070 ms 7440 KB Time limit exceeded
3 Halted 0 ms 0 KB -