提出 #71366614
ソースコード 拡げる
#include<bits/stdc++.h>
#define cmin(a,b) a=std::min(a,b)
#define cmax(a,b) a=std::max(a,b)
#define inf
#define mod
#define maxn 1000006
#define int long long
int n,a[maxn];
char s[maxn],ch[maxn];
struct info{
int x,c;
}ls[maxn];
int len[maxn],tot;
info operator +(info x,info y){
if(x.x==y.x) return {x.x,x.c+y.c};
return (x.x>y.x)?x:y;
}
signed main(){
scanf("%lld",&n);
scanf("%s",s+1);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
char lst='?';info res={0,0};
int mx=0,l=0,_c=0;
for(int i=1;i<=n;i++){
if(s[i]!=lst){
if(lst!='?') ls[++tot]=res,ch[tot]=lst,len[tot]=l;
lst=s[i],res={0,0},l=0;
}
res=res+(info){a[i],1},l++;
}
ls[++tot]=res,ch[tot]=lst,len[tot]=l;
for(int i=1,l=1;i<=tot;l+=len[i],i++){
if(ch[i]=='#'&&(i==1||i==tot)) continue;
for(int j=l;j<=l+len[i]-1;j++){
cmax(mx,a[j]);
}
}
for(int i=2;i<=tot-1;i++){
if(ch[i]=='#') _c++;
}
int ans=0;
if(_c==1){
for(int i=2;i<=tot-1;i++){
if(ch[i]=='#') ans=ls[i-1].c*ls[i+1].c;
}
}else{
for(int i=1;i<=tot;i++){
if(ch[i]=='#') continue;
if(i+2>tot) continue;
if(ls[i+1].x==mx||ls[i].x==mx||ls[i+2].x==mx){
ans+=ls[i].c*ls[i+2].c;
}
}
}
printf("%lld\n",ans);
return 0;
}
/*
12
#...###...##
3 1 2 2 2 1 2 1 1 2 5 5
12
#...#.#...##
3 1 2 2 2 1 2 1 1 2 5 5
12
#...#..#...#
3 1 2 2 1 2 1 1 1 1 2 5
*/
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Forest |
| ユーザ | huanghongjun |
| 言語 | C++23 (GCC 15.2.0) |
| 得点 | 600 |
| コード長 | 1405 Byte |
| 結果 | AC |
| 実行時間 | 17 ms |
| メモリ | 10176 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 600 / 600 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt |
| All | 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 01-random-001.txt, 01-random-002.txt, 01-random-003.txt, 01-random-004.txt, 01-random-005.txt, 01-random-006.txt, 01-random-007.txt, 01-random-008.txt, 01-random-009.txt, 01-random-010.txt, 02-less_segs-001.txt, 02-less_segs-002.txt, 02-less_segs-003.txt, 02-less_segs-004.txt, 02-less_segs-005.txt, 02-less_segs-006.txt, 02-less_segs-007.txt, 02-less_segs-008.txt, 02-less_segs-009.txt, 02-less_segs-010.txt, 03-many_segs-001.txt, 03-many_segs-002.txt, 03-many_segs-003.txt, 03-many_segs-004.txt, 03-many_segs-005.txt, 03-many_segs-006.txt, 03-many_segs-007.txt, 03-many_segs-008.txt, 03-many_segs-009.txt, 03-many_segs-010.txt, 04-large-001.txt, 04-large-002.txt, 04-large-003.txt, 04-large-004.txt, 04-large-005.txt, 04-large-006.txt, 04-large-007.txt, 04-large-008.txt, 04-large-009.txt, 04-large-010.txt, 05-small-001.txt, 05-small-002.txt, 05-small-003.txt, 05-small-004.txt, 05-small-005.txt, 05-small-006.txt, 05-small-007.txt, 05-small-008.txt, 05-small-009.txt, 05-small-010.txt, 06-killer-001.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00-sample-001.txt | AC | 1 ms | 3792 KiB |
| 00-sample-002.txt | AC | 1 ms | 3724 KiB |
| 00-sample-003.txt | AC | 1 ms | 3780 KiB |
| 01-random-001.txt | AC | 16 ms | 6728 KiB |
| 01-random-002.txt | AC | 16 ms | 8640 KiB |
| 01-random-003.txt | AC | 14 ms | 5840 KiB |
| 01-random-004.txt | AC | 14 ms | 5568 KiB |
| 01-random-005.txt | AC | 17 ms | 8324 KiB |
| 01-random-006.txt | AC | 17 ms | 9776 KiB |
| 01-random-007.txt | AC | 16 ms | 7868 KiB |
| 01-random-008.txt | AC | 16 ms | 7588 KiB |
| 01-random-009.txt | AC | 17 ms | 9040 KiB |
| 01-random-010.txt | AC | 16 ms | 9732 KiB |
| 02-less_segs-001.txt | AC | 14 ms | 5424 KiB |
| 02-less_segs-002.txt | AC | 14 ms | 5436 KiB |
| 02-less_segs-003.txt | AC | 13 ms | 5376 KiB |
| 02-less_segs-004.txt | AC | 14 ms | 5484 KiB |
| 02-less_segs-005.txt | AC | 15 ms | 5520 KiB |
| 02-less_segs-006.txt | AC | 15 ms | 5440 KiB |
| 02-less_segs-007.txt | AC | 14 ms | 5520 KiB |
| 02-less_segs-008.txt | AC | 13 ms | 5564 KiB |
| 02-less_segs-009.txt | AC | 14 ms | 5556 KiB |
| 02-less_segs-010.txt | AC | 14 ms | 5540 KiB |
| 03-many_segs-001.txt | AC | 16 ms | 10144 KiB |
| 03-many_segs-002.txt | AC | 17 ms | 8268 KiB |
| 03-many_segs-003.txt | AC | 16 ms | 9520 KiB |
| 03-many_segs-004.txt | AC | 16 ms | 6928 KiB |
| 03-many_segs-005.txt | AC | 17 ms | 8368 KiB |
| 03-many_segs-006.txt | AC | 17 ms | 8612 KiB |
| 03-many_segs-007.txt | AC | 15 ms | 6332 KiB |
| 03-many_segs-008.txt | AC | 16 ms | 8196 KiB |
| 03-many_segs-009.txt | AC | 16 ms | 7296 KiB |
| 03-many_segs-010.txt | AC | 16 ms | 6848 KiB |
| 04-large-001.txt | AC | 17 ms | 8000 KiB |
| 04-large-002.txt | AC | 17 ms | 10064 KiB |
| 04-large-003.txt | AC | 17 ms | 8636 KiB |
| 04-large-004.txt | AC | 17 ms | 9344 KiB |
| 04-large-005.txt | AC | 16 ms | 6592 KiB |
| 04-large-006.txt | AC | 17 ms | 10176 KiB |
| 04-large-007.txt | AC | 15 ms | 5664 KiB |
| 04-large-008.txt | AC | 16 ms | 6728 KiB |
| 04-large-009.txt | AC | 17 ms | 8576 KiB |
| 04-large-010.txt | AC | 17 ms | 10048 KiB |
| 05-small-001.txt | AC | 1 ms | 3776 KiB |
| 05-small-002.txt | AC | 1 ms | 3648 KiB |
| 05-small-003.txt | AC | 1 ms | 3776 KiB |
| 05-small-004.txt | AC | 1 ms | 3776 KiB |
| 05-small-005.txt | AC | 1 ms | 3696 KiB |
| 05-small-006.txt | AC | 1 ms | 3728 KiB |
| 05-small-007.txt | AC | 1 ms | 3748 KiB |
| 05-small-008.txt | AC | 1 ms | 3792 KiB |
| 05-small-009.txt | AC | 1 ms | 3728 KiB |
| 05-small-010.txt | AC | 1 ms | 3772 KiB |
| 06-killer-001.txt | AC | 13 ms | 5576 KiB |