제출 #1059852

#제출 시각아이디문제언어결과실행 시간메모리
1059852dpsaveslives이상한 기계 (APIO19_strange_device)C++17
100 / 100
1174 ms101956 KiB
#include <bits/stdc++.h> #define int long long using namespace std; ostream& operator<<(ostream& out, __int128_t x){ string s; while(x) s.push_back(x % 10 + '0'), x /= 10; reverse(s.begin(), s.end()); return out << s; } int32_t main(){ int N,A,B; cin >> N >> A >> B; __int128_t C = (__int128_t)B*(A/__gcd(A,B+1)); vector<pair<__int128_t, __int128_t>> ranges; for(int i = 0;i<N;++i){ int l,r; cin >> l >> r; if(r-l+1 >= C){ cout << C << "\n"; return 0; } if(l/C == r/C){ ranges.push_back({l%C,1}); ranges.push_back({r%C + 1,-1}); } else{ ranges.push_back({l%C,1}); ranges.push_back({0,1}); ranges.push_back({r%C+1,-1}); } } ranges.push_back({C, 0}); sort(ranges.begin(),ranges.end()); int cnt = 0, ans = 0; for(int i = 0;i<ranges.size()-1;++i){ cnt += ranges[i].second; if(cnt > 0){ ans += ranges[i+1].first-ranges[i].first; } } cout << ans << "\n"; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

strange_device.cpp: In function 'int32_t main()':
strange_device.cpp:33:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<__int128, __int128> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |  for(int i = 0;i<ranges.size()-1;++i){
      |                ~^~~~~~~~~~~~~~~~
#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...