結果
問題 |
No.674 n連勤
|
ユーザー |
|
提出日時 | 2020-10-21 16:09:40 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 802 bytes |
コンパイル時間 | 2,356 ms |
コンパイル使用メモリ | 205,544 KB |
最終ジャッジ日時 | 2025-01-15 12:14:48 |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 8 WA * 9 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:14:22: warning: use of assignment suppression and length modifier together in gnu_scanf format [-Wformat=] 14 | int q; scanf("%*lld%d",&q); | ^~~~~~~~~ main.cpp:14:21: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 14 | int q; scanf("%*lld%d",&q); | ~~~~~^~~~~~~~~~~~~~ main.cpp:16:32: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 16 | lint l,r; scanf("%lld%lld",&l,&r); r++; | ~~~~~^~~~~~~~~~~~~~~~~~
ソースコード
#include <bits/stdc++.h> #define rep(i,n) for(int i=0;i<(n);i++) using namespace std; using lint=long long; const long long INF=1LL<<61; int main(){ set<pair<lint,lint>> I; multiset<lint> Sz; int q; scanf("%*lld%d",&q); rep(_,q){ lint l,r; scanf("%lld%lld",&l,&r); r++; while(1){ auto it=I.upper_bound({l,-INF}); if(it!=I.end() && (it->first)<=r){ lint tl,tr; tie(tl,tr)=*it; r=max(r,tr); Sz.erase(Sz.find(tr-tl)); I.erase(it); continue; } it=I.upper_bound({l,-INF}); if(it!=I.begin()){ --it; if(l<=(it->second)){ lint tl,tr; tie(tl,tr)=*it; l=min(l,tl); Sz.erase(Sz.find(tr-tl)); I.erase(*it); continue; } } break; } Sz.emplace(r-l); I.emplace(l,r); printf("%lld\n",*Sz.rbegin()); } return 0; }