Submission #1279376

#TimeUsernameProblemLanguageResultExecution timeMemory
1279376longlong5a6Fortune Telling 2 (JOI14_fortune_telling2)C++20
4 / 100
3 ms832 KiB
//longlong5a6
#include <bits/stdc++.h>
#define pii pair<int,int>
#define F first
#define S second
#define bit(i, x)((x >> i) & 1)
#define sobit(i)  __builtin_popcount((int)(i))
#define sobitll(i) __builtin_popcountll((int)(i))
#define pb push_back
#define all(x) x.begin(),x.end()
#define vi vector<int>
#define For(i,x,n) for(int (i)=(int)(x);(i)<=(int)(n);(i)++)
#define round(m,n) setprecision((int)m) << fixed << double(n)
#define down "\n"
#define TASK "domino"
#define int long long
#define maxn 200001
using namespace std;

int n,k;
pii a[maxn];
int t[maxn];


signed main()
{
    ios_base::sync_with_stdio(0);
        cin.tie(0);
        cout.tie(0);
    if (fopen("in.txt","r"))
        {
            freopen("in.txt","r",stdin);

        }
    if (fopen(TASK".INP","r"))
            {
                freopen(TASK".INP","r",stdin);
                freopen(TASK".OUT","w",stdout);
            }
    cin>>n>>k;
    For(i,1,n)
    {
        cin>>a[i].F>>a[i].S;
    }
    For(i,1,k)
    {
        cin>>t[i];
    }
    if (n<=1000)
    {
        int res=0;
        For(i,1,n)
        {
            int sta=0;
            For(j,1,k)
            {
                int cur=(sta?a[i].S:a[i].F);
                if (t[j]>=cur) sta=1ll-sta;
            }
            res+=(sta?a[i].S:a[i].F);
        }
        cout<<res<<down;
        return 0;
    }
    int res=0;
    vector<int> c;
    For(i,1,k) c.pb(t[i]);
    For(i,1,n)
    {
        int id1=lower_bound(all(c),a[i].F)-c.begin();
        int id2=lower_bound(all(c),a[i].S)-c.begin();
        if (id1<id2)
        {
            int cur=k-id2+1;
            if (cur&1) res+=a[i].S;
            else res+=a[i].F;
        }
        else
        {
            int cur=k-id1;
            if (cur&1) res+=a[i].S;
            else res+=a[i].F;
        }
    }
    cout<<res;

}

Compilation message (stderr)

fortune_telling2.cpp: In function 'int main()':
fortune_telling2.cpp:32:20: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |             freopen("in.txt","r",stdin);
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~
fortune_telling2.cpp:37:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |                 freopen(TASK".INP","r",stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
fortune_telling2.cpp:38:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   38 |                 freopen(TASK".OUT","w",stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...