# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
1104980 |
2024-10-25T03:26:36 Z |
Faggi |
Sails (IOI07_sails) |
C++11 |
|
42 ms |
5084 KB |
#include <bits/stdc++.h>
#define ll long long
using namespace std;
vector<ll>tamDP;
vector<ll>calcs;
ll tam;
bool can(vector<ll> dp,ll x)
{
ll ma, sob, i;
for(i=tam; i>0ll; i--)
{
ma=min(x,tamDP[i]);
sob=0ll;
if(dp[i]>ma)
{
sob=dp[i]-ma;
dp[i]=ma;
if(i>1ll)
dp[i-1ll]+=sob;
else
return 0;
}
}
return 1;
}
ll calc(vector<ll> dp, ll x)
{
ll ma, sob, i, res=0ll;
for(i=tam; i>0ll; i--)
{
ma=min(x,tamDP[i]);
sob=0ll;
if(dp[i]>ma)
{
sob=dp[i]-ma;
dp[i]=ma;
dp[i-1ll]+=sob;
}
}
for(i=tam; i>0ll; i--)
{
res+=calcs[dp[i]];
}
return res;
}
int main()
{
ll n, i, mi=0ll, ma=0ll, piv,pos;
cin >> n;
calcs.resize(n+1ll);
calcs[0ll]=0ll;
calcs[1ll]=0ll;
for(i=2ll; i<=n; i++)
{
calcs[i]+=calcs[i-1ll]+(i-1ll);
}
vector<pair<ll,ll>>v(n);
for(i=0ll; i<n; i++)
{
cin >> v[i].first >> v[i].second;
tam=max(v[i].first,tam);
}
vector<ll> dp(tam+1,0ll);
tamDP.resize(tam+1,0ll);
for(i=0ll; i<n; i++)
{
dp[v[i].first]+=1ll;
dp[v[i].first-v[i].second]-=1ll;
tamDP[v[i].first]+=1ll;
}
ma=dp[tam];
for(i=tam-1ll; i>=0ll; i--)
{
dp[i]+=dp[i+1ll];
ma=max(ma,dp[i]);
tamDP[i]+=tamDP[i+1ll];
}
pos=ma;
while(mi<=ma)
{
piv=(mi+ma)/2ll;
if(can(dp,piv))
{
ma=piv-1ll;
pos=piv;
}
else
{
mi=piv+1ll;
}
}
cout << (ll)calc(dp,pos) << endl;
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
336 KB |
Output is correct |
2 |
Correct |
1 ms |
336 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
504 KB |
Output is correct |
2 |
Correct |
0 ms |
336 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
516 KB |
Output is correct |
2 |
Correct |
1 ms |
336 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
336 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
336 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
4 ms |
1124 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
11 ms |
1636 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
23 ms |
2760 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
30 ms |
4444 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
42 ms |
4848 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
42 ms |
5084 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |