結果
| 問題 | No.3745 Line Seats |
| ユーザー |
Tuchmos
|
| 提出日時 | 2026-09-24 23:15:00 |
| 言語 | C++23(gcc16) (gcc 16.1.0 + boost 1.92.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 3 ms / 2,000 ms |
| + 144µs | |
| コード長 | 991 bytes |
| 記録 | |
| コンパイル時間 | 6,519 ms |
| コンパイル使用メモリ | 387,616 KB |
| 実行使用メモリ | 9,896 KB |
| 最終ジャッジ日時 | 2026-09-24 23:15:29 |
| 合計ジャッジ時間 | 9,696 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点 | 20 % | AC * 47 |
| 満点 | 80 % | AC * 60 |
| 合計 | 2 * 100% = 200 点 |
ソースコード
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
#define all(s) (s).begin(), (s).end()
#define rall(s) (s).rbegin(), (s).rend()
#define rep(i,l,r) for(int i=l;i<r;i++)
#define rrep(i,r,l) for(int i=r;i>=l;i--)
using ll=long long;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;cin>>N;
string S;cin>>S;
vector<int> left(N),right(N);
int last=-1;
rep(i,0,N){
if(S[i]=='.'){
if(last==-1)left[i]=1e9;
else left[i]=i-last;
}
else{
last=i;
}
}
last=-1;
rrep(i,N-1,0){
if(S[i]=='.'){
if(last==-1)right[i]=1e9;
else right[i]=last-i;
}
else last=i;
}
int ans=-1;
int cur=0;
rep(i,0,N){
if(S[i]=='#')continue;
int dist=min(left[i],right[i]);
if(dist>cur){
ans=i+1;
cur=dist;
}
}
cout<<ans<<endl;
}
Tuchmos