Submission #29280

# Submission time Handle Problem Language Result Execution time Memory
29280 2017-07-19T01:04:06 Z 김동현(#1164) Meteors (POI11_met) C++14
24 / 100
6000 ms 23552 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;

int n, m, k, l[300010], r[300010], s[300010], e[300010], st[300010], nx[300010];
vector<pii> qv;
ll p[300010], a[300010];

const int sz = 524288;
struct Seg{
	ll dat[2 * sz];
	void ini(){ fill(dat + 1, dat + 2 * sz, 0); }
	void upd(int s, int e, ll v){
		for(s += sz, e += sz; s <= e; s /= 2, e /= 2){
			if(s % 2 == 1) dat[s++] += v;
			if(e % 2 == 0) dat[e--] += v;
		}
	}
	ll get(int x){
		ll ret = 0;
		for(x += sz; x; x /= 2) ret += dat[x];
		return ret;
	}
} S;

int main(){
	scanf("%d%d", &n, &m);
	for(int i = 1, x; i <= m; i++){
		scanf("%d", &x);
		nx[i] = st[x];
		st[x] = i;
	}
	for(int i = 1; i <= n; i++) scanf("%lld", p + i);
	scanf("%d", &k);
	for(int i = 1; i <= k; i++) scanf("%d%d%lld", l + i, r + i, a + i);
	fill(s + 1, s + n + 1, 1);
	fill(e + 1, e + n + 1, k);
	while(1){
		qv.clear();
		for(int i = 1; i <= n; i++){
			if(s[i] <= e[i]) qv.push_back(pii((s[i] + e[i]) / 2, i));
		}
		if(qv.empty()) break;
		S.ini();
		int t = 0;
		for(int i = 1; i <= k; i++){
			if(l[i] <= r[i]) S.upd(l[i], r[i], a[i]);
			else{
				S.upd(l[i], m, a[i]);
				S.upd(1, r[i], a[i]);
			}
			for(; t < qv.size() && qv[t].first == i; t++){
				int c = qv[t].second;
				ll cs = 0;
				for(int j = st[c]; j; j = nx[j]) cs += S.get(j);
				if(cs >= p[c]) e[c] = i - 1;
				else s[c] = i + 1;
			}
		}
	}
	for(int i = 1; i <= n; i++){
		if(s[i] > k) puts("NIE");
		else printf("%d\n", s[i]);
	}
}

Compilation message

met.cpp: In function 'int main()':
met.cpp:53:12: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(; t < qv.size() && qv[t].first == i; t++){
            ^
met.cpp:28:23: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &n, &m);
                       ^
met.cpp:30:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &x);
                  ^
met.cpp:34:50: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i = 1; i <= n; i++) scanf("%lld", p + i);
                                                  ^
met.cpp:35:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &k);
                 ^
met.cpp:36:68: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i = 1; i <= k; i++) scanf("%d%d%lld", l + i, r + i, a + i);
                                                                    ^
# Verdict Execution time Memory Grader output
1 Correct 263 ms 21932 KB Output is correct
2 Correct 116 ms 21932 KB Output is correct
3 Correct 673 ms 21932 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 473 ms 21932 KB Output is correct
2 Correct 143 ms 21932 KB Output is correct
3 Correct 1899 ms 21932 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2729 ms 22072 KB Output is correct
2 Execution timed out 6000 ms 22400 KB Execution timed out
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 6000 ms 22204 KB Execution timed out
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 6000 ms 22072 KB Execution timed out
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 6000 ms 21932 KB Execution timed out
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 6000 ms 23552 KB Execution timed out
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 6000 ms 23552 KB Execution timed out
2 Halted 0 ms 0 KB -