답안 #256571

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
256571 2020-08-02T21:08:17 Z ElyesChaabouni Vudu (COCI15_vudu) C++17
98 / 140
1000 ms 65540 KB
#pragma GCC optimize("O3")
#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> // Common file
#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update#define eps 1e-9
#define MOD1 998244353
#define MOD2 1000000007
#define INV_10 299473306
#define INF 1000000001
#define PI 3.14159265358979323846
#define ordered_set tree<pair<long long, int>, null_type,less<pair<long long, int> >, rb_tree_tag,tree_order_statistics_node_update> 
using namespace std;
using namespace __gnu_pbds;
int main()
{
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int n;
	//cin >> n;
	scanf("%d", &n);
	int a[n];
	ordered_set s;
	//cout << n << '\n';
	for(int i = 0; i < n; i++)
		scanf("%d", &a[i]);
		//cin >> a[i];
	int p;
	scanf("%d", &p);
	//cin >> p;
	long long sum=0, cu=0, ans=0;
	for(int i = n-1; i >= 0; i--)
	{
		sum+=a[i];
		s.insert(make_pair(sum-cu, i));
		//cout << here[i] << ' ';
		cu+=p;
	}
	//cout << '\n';
	cu=0;
	sum=0;
	for(int i = n-1; i >= 0; i--)
	{
		ordered_set::iterator it=s.lower_bound(make_pair(p+sum-cu, -1));
		if(it!=s.end())
			ans+=i+1-s.order_of_key(*it);
		//cout << s.order_of_key(*s.lower_bound(make_pair(p+pr-cu, -1))) << '\n';
		sum+=a[i];
		s.erase(make_pair(sum-cu, i));
		cu+=p;
	}
	//cout << ans << '\n';
	printf("%lld", ans);
}

Compilation message

vudu.cpp: In function 'int main()':
vudu.cpp:18:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
vudu.cpp:23:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &a[i]);
   ~~~~~^~~~~~~~~~~~~
vudu.cpp:26:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &p);
  ~~~~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 896 KB Output is correct
2 Correct 5 ms 768 KB Output is correct
3 Correct 4 ms 768 KB Output is correct
4 Execution timed out 1094 ms 65536 KB Time limit exceeded
5 Correct 571 ms 36852 KB Output is correct
6 Execution timed out 1006 ms 57468 KB Time limit exceeded
7 Correct 933 ms 59640 KB Output is correct
8 Correct 876 ms 51836 KB Output is correct
9 Runtime error 641 ms 65540 KB Execution killed with signal 9 (could be triggered by violating memory limits)
10 Correct 962 ms 58172 KB Output is correct