結果
| 問題 | No.154 市バス |
| コンテスト | |
| ユーザー |
jj
|
| 提出日時 | 2016-09-11 15:05:40 |
| 言語 | Fortran (gFortran 15.2.0) |
| 結果 |
AC
|
| 実行時間 | 13 ms / 2,000 ms |
| コード長 | 1,228 bytes |
| 記録 | |
| コンパイル時間 | 183 ms |
| コンパイル使用メモリ | 39,168 KB |
| 実行使用メモリ | 6,400 KB |
| 最終ジャッジ日時 | 2026-04-30 17:44:49 |
| 合計ジャッジ時間 | 1,273 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 8 |
ソースコード
program main
implicit none
integer::T,i
character*1000::S
read *,T
do i=1,T
read *,S
call analyze(S)
end do
contains
subroutine analyze(S)
integer::j,len,w,g,r,keitou
character*1000::S
len = LEN_TRIM(S)
w = 0
g = 0
r = 0
do j=1,len
if(S(j:j).eq.'R') then
r = r + 1
if(r.gt.g.or.r.gt.w) then
print '(a)',"impossible"
return
end if
else if(S(j:j).eq.'G') then
g = g + 1
if(g.gt.w) then
print '(a)',"impossible"
return
end if
else
w = w + 1
end if
end do
if(g.ne.r) then
print '(a)',"impossible"
return
end if
w = 0
g = 0
r = 0
do j=len,1,-1
if(S(j:j).eq.'R') then
r = r + 1
else if(S(j:j).eq.'G') then
g = g + 1
if(r.eq.0) then
print '(a)',"impossible"
return
end if
else
w = w + 1
if(r.eq.0.or.g.eq.0) then
print '(a)',"impossible"
return
end if
end if
end do
print '(a)',"possible"
end subroutine analyze
end program main
jj