Submission #22074

#TimeUsernameProblemLanguageResultExecution timeMemory
22074아재 goto 써요? (#42)구간들 (KRIII5P_3)C++14
2 / 7
106 ms5180 KiB
// ===================================================================================== // // Filename: i.cpp // Created: 2017년 04월 29일 15시 53분 37초 // Compiler: g++ -O2 -std=c++14 // Author: baactree , [email protected] // Company: Chonnam National University // // ===================================================================================== #include <bits/stdc++.h> using namespace std; int n; vector<pair<int, int> > event; const int mod=1000000007; typedef long long ll; ll _pow(ll a, ll b){ if(b==0) return 1; ll temp=_pow(a, b/2); temp=(temp*temp)%mod; if(b&1) return (temp*a)%mod; return temp; } int main(){ scanf("%d", &n); for(int i=0;i<n;i++){ int a, b; scanf("%d%d", &a, &b); if(a>=b) continue; event.push_back({a, 0}); event.push_back({b, 1}); } sort(event.begin(), event.end()); int cnt=0; ll len=0; ll ans=0; int pre=0; for(int i=0;i<event.size();i++){ int x=event[i].first; int m=event[i].second; len+=(long long)(x-pre)*(_pow(2, cnt)-1+mod); len%=mod; if(!m){ ans+=_pow(2, cnt); ans%=mod; cnt++; } else{ cnt--; } pre=x; } printf("%lld %lld\n", len, ans); return 0; }

Compilation message (stderr)

i.cpp: In function 'int main()':
i.cpp:41:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<event.size();i++){
               ^
i.cpp:27:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
                 ^
i.cpp:30:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", &a, &b);
                        ^
#Verdict Execution timeMemoryGrader output
Fetching results...