Submission #170561

# Submission time Handle Problem Language Result Execution time Memory
170561 2019-12-25T15:51:01 Z mdn2002 Unija (COCI17_unija) C++14
80 / 100
1000 ms 43900 KB
#include<bits/stdc++.h>
using namespace std;
const long long mod=998244353;
multiset<int>ms;
int n,k;
map<int,int>a;
int v[1000006];
vector<int>b;
int main()
{
    //ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    //freopen("lemonade.in","r",stdin);
    //freopen("lemonade.out","w",stdout);
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        int x,y;
        scanf("%d",&x);
        scanf("%d",&y);
        x/=2;
        y/=2;
        if(a[y+1]==0)
        {
            a[y+1]=++k;
            b.push_back(y+1);
        }
        if(v[a[y+1]]==0)
        {
            v[a[y+1]]=x;
            ms.insert(x);
            continue;
        }
        if(v[a[y+1]]<x)
        {
            ms.erase(ms.lower_bound(v[a[y+1]]));
            ms.insert(x);
            v[a[y+1]]=x;
        }
    }
    sort(b.begin(),b.end());
    long long ans=0;
    for(int i=0;i<b.size();i++)
    {
        int z=b[i],z1;
        if(i>0)z1=b[i-1];
        else z1=1;
        ans+=*--ms.end()*(z-z1);
        if(v[a[z]]!=0)
        {
            int x=v[a[z]];
            ms.erase(ms.lower_bound(x));
        }
        if(ms.size()==0)break;
    }
    cout<<ans*4;
}

Compilation message

unija.cpp: In function 'int main()':
unija.cpp:44:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<b.size();i++)
                 ~^~~~~~~~~
unija.cpp:16:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&n);
     ~~~~~^~~~~~~~~
unija.cpp:20:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&x);
         ~~~~~^~~~~~~~~
unija.cpp:21:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&y);
         ~~~~~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 380 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 380 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 3 ms 376 KB Output is correct
3 Correct 3 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 632 KB Output is correct
2 Correct 8 ms 732 KB Output is correct
3 Correct 8 ms 696 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1071 ms 43900 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 380 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 49 ms 2652 KB Output is correct
2 Correct 49 ms 2680 KB Output is correct
3 Correct 49 ms 2652 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 188 ms 7920 KB Output is correct
2 Correct 197 ms 8068 KB Output is correct
3 Correct 193 ms 8176 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 742 ms 23480 KB Output is correct
2 Correct 742 ms 23456 KB Output is correct
3 Correct 736 ms 23260 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1078 ms 42092 KB Time limit exceeded
2 Halted 0 ms 0 KB -