| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1290383 | uocgi | Inspections (NOI23_inspections) | C++20 | 1348 ms | 1114112 KiB |
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define pb push_back
#define ii pair<int,int>
#define int long long
#define TASK "Inspections"
const int maxn = 3e5+5;
const int mod = 1e9+7;
int m,n,q;
ii a[maxn];
namespace sub1{
vector<int> b;
int pos[maxn];
int calc(int x){
int cnt = 0;
for (int i = 1;i<=n;i++) pos[i] = -1;
for (int i = (int)b.size()-1;i>=0;i--){
// cout << i << " " << pos[b[i]] << "\n";
if (pos[b[i]]!=-1){
if (pos[b[i]]-i-1>=x) cnt++;
}
pos[b[i]] = i;
}
return cnt;
}
void solve(){
for (int i = 1;i<=m;i++){
for (int j = a[i].fi;j<=a[i].se;j++){
b.pb(j);
}
}
// for (int x : b) cout << x << " ";
// cout << "\n";
while (q--){
int x; cin >> x;
cout << calc(x) << " ";
}
}
}
namespace sub2{
vector<int> b;
int pos[maxn];
int calc(int x){
int cnt = 0;
for (int i = 1;i<=n;i++) pos[i] = -1;
for (int i = (int)b.size()-1;i>=0;i--){
// cout << i << " " << pos[b[i]] << "\n";
if (pos[b[i]]!=-1){
if (pos[b[i]]-i-1>=x) cnt++;
}
pos[b[i]] = i;
}
return cnt;
}
vector<int> diff;
void prepare(){
for (int i = 1;i<=n;i++) pos[i] = -1;
for (int i = (int)b.size()-1;i>=0;i--){
// cout << i << " " << pos[b[i]] << "\n";
if (pos[b[i]]!=-1){
diff.pb(pos[b[i]]-i-1);
}
pos[b[i]] = i;
}
sort(diff.begin(),diff.end());
}
void solve(){
for (int i = 1;i<=m;i++){
for (int j = a[i].fi;j<=a[i].se;j++){
b.pb(j);
}
}
prepare();
while (q--){
int x; cin >> x;
int lb = lower_bound(diff.begin(),diff.end(),x)-diff.begin();
cout << diff.size()-lb << " ";
}
}
}
namespace sub3{
bool check(){
for (int i = 1;i<=m;i++) if (a[i].fi!=1) return 0;
return 1;
}
void solve(){
}
}
signed main(){
ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
if (fopen(TASK".inp","r")){
freopen(TASK".inp","r",stdin);
freopen(TASK".out","w",stdout);
}
cin >> n >> m >> q;
for (int i = 1;i<=m;i++) cin >> a[i].fi >> a[i].se;
// sub1::solve();
sub2::solve();
}
컴파일 시 표준 에러 (stderr) 메시지
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
