제출 #138601

#제출 시각아이디문제언어결과실행 시간메모리
13860120160161simoneSails (IOI07_sails)C++14
30 / 100
1092 ms4216 KiB
#include <bits/stdc++.h>
#define N 100000
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
ll read()
{
	char c=getchar();bool flag=0;ll x=0;
	while(c<'0'||c>'9'){if(c=='-')flag=1;c=getchar();}
	while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+c-'0';c=getchar();}
	return flag?-x:x;
}
struct gan{
	ll h,s;
}a[N];
struct ceng{
	ll num,val,sum;
}b[N];
bool cmp(gan a,gan b)
{
	if(a.h<b.h) return 1;
	return 0;
}
bool cmp2(ceng a,ceng b)
{
	if(a.val<b.val) return 1;
	return 0; 
}
ll n,mx;
int main()
{
	n=read(),mx=0;
	for(ll i=1;i<=n;i++)
	{
		a[i].h=read(),a[i].s=read();
		mx=max(mx,a[i].h); 
	} 
	for(ll i=1;i<=mx;i++) b[i].num=i;
	sort(a+1,a+1+n,cmp);
	for(ll i=1;i<=n;i++)
	{
		sort(b+1,b+1+a[i].h,cmp2); 
		for(ll j=1;j<=a[i].s;j++) b[j].val++,b[j].sum+=(b[j].val-1);
	}
	ll ans=0;
	//for(ll i=1;i<=mx;i++) printf("%lld::%lld\n",b[i].num,b[i].val);
	for(ll i=1;i<=mx;i++) ans+=b[i].sum;
	printf("%lld",ans);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...