提出 #577347


ソースコード 拡げる

#include <cstring>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <queue>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>          //cout<<fixed<<setprecision(10);
//#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
//#include <memory.h>
#include <cassert>

#define SZ(X) ((int)(X).size())
#define ALL(X) (X).begin(), (X).end()
#define REP(I, A, B) for (int I = (A); I < (B); ++I)
#define RI(X) scanf("%d", &(X))
#define RII(X, Y) scanf("%d%d", &(X), &(Y))
#define RIII(X, Y, Z) scanf("%d%d%d", &(X), &(Y), &(Z))
#define DRI(X) int (X); scanf("%d", &X)
#define DRII(X, Y) int X, Y; scanf("%d%d", &X, &Y)
#define DRIII(X, Y, Z) int X, Y, Z; scanf("%d%d%d", &X, &Y, &Z)
#define RS(X) scanf("%s", (X))
#define CASET int ___T, case_n = 1; scanf("%d ", &___T); while (___T-- > 0)
#define MP make_pair
#define PB push_back
#define MS0(X) memset((X), 0, sizeof((X)))
#define MS1(X) memset((X), -1, sizeof((X)))
#define LEN(X) ((int)strlen(X))
#define F first
#define S second
#define IOS ios_base::sync_with_stdio(0)
#ifdef ONLINE_JUDGE
#define FILEIO(name) \
    freopen(name".in", "r", stdin); \
    freopen(name".out", "w", stdout);
#else
#define FILEIO(name)
#endif

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair<int,int> ii;
typedef pair<ll,ll> pll;
/*#include<complex>
typedef complex<double> cd;
#define X real()
#define Y imag()*/

char s[100100];
int v[100100];
vector<int> L,R;

int main()
{
    DRI(n);
    RS(s);
    for(int i=n-1;i>=0;i--){
        if(s[i]=='<')R.PB(i);
    }
    reverse(ALL(R));
    int ri=0,rn=SZ(R),ln=0,ans=-1;
    for(int i=0;i<n;i++){
        //cout<<i<<':';
        if(R[ri]==i)ri++;
        if(i>0&&s[i-1]=='>'){
            L.PB(i-1);
            ln++;
        }
        if(s[i]=='>'){
            if(rn-ri>ln){
                //cout<<0<<' '<<R[ri+ln]<<endl;
                ans=max(ans,R[ri+ln]-0+1);
            }
            else{
                if(rn-ri==0)//cout<<i<<' '<<n-1<<endl;
                    ans=max(ans,n-1-i+1);
                else //cout<<L[ln-(rn-ri)]<<' '<<n-1<<endl;
                    ans=max(ans,n-1-L[ln-(rn-ri)]+1);
            }
        }
        else{
            if(rn-ri<ln){
                //cout<<L[ln-(rn-ri)-1]<<' '<<n-1<<endl;
                ans=max(ans,n-1-L[ln-(rn-ri)-1]+1);
            }
            else{
                if(ri+ln-1<0)//cout<<0<<' '<<i<<endl;
                    ans=max(ans,i-0+1);
                else //cout<<0<<' '<<R[ri+ln-1]<<endl;
                    ans=max(ans,R[ri+ln-1]-0+1);
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

提出情報

提出日時
問題 D - Line Gimmick
ユーザ HDYTTO
言語 C++11 (GCC 4.8.1)
得点 100
コード長 2883 Byte
結果 AC
実行時間 39 ms
メモリ 1808 KiB

コンパイルエラー

./Main.cpp: In function ‘int main()’:
./Main.cpp:68:11: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     DRI(n);
           ^
./Main.cpp:69:10: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     RS(s);
          ^

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 29
セット名 テストケース
All 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 10_simple_small_000, 10_simple_small_001, 10_simple_small_002, 10_simple_small_003, 10_simple_small_004, 11_simple_med_000, 11_simple_med_001, 11_simple_med_002, 11_simple_med_003, 11_simple_med_004, 12_simple_large_000, 12_simple_large_001, 12_simple_large_002, 12_simple_large_003, 12_simple_large_004, 21_answer_med_000, 21_answer_med_001, 21_answer_med_002, 21_answer_med_003, 21_answer_med_004, 22_answer_large_000, 22_answer_large_001, 22_answer_large_002, 22_answer_large_003, 22_answer_large_004
ケース名 結果 実行時間 メモリ
00_sample_00 AC 26 ms 1048 KiB
00_sample_01 AC 24 ms 1044 KiB
00_sample_02 AC 27 ms 1048 KiB
00_sample_03 AC 24 ms 1044 KiB
10_simple_small_000 AC 28 ms 1052 KiB
10_simple_small_001 AC 26 ms 1044 KiB
10_simple_small_002 AC 26 ms 1044 KiB
10_simple_small_003 AC 26 ms 1044 KiB
10_simple_small_004 AC 26 ms 1028 KiB
11_simple_med_000 AC 24 ms 1048 KiB
11_simple_med_001 AC 24 ms 1044 KiB
11_simple_med_002 AC 24 ms 1048 KiB
11_simple_med_003 AC 26 ms 1040 KiB
11_simple_med_004 AC 28 ms 1052 KiB
12_simple_large_000 AC 28 ms 1328 KiB
12_simple_large_001 AC 28 ms 1328 KiB
12_simple_large_002 AC 31 ms 1808 KiB
12_simple_large_003 AC 30 ms 1580 KiB
12_simple_large_004 AC 39 ms 1600 KiB
21_answer_med_000 AC 30 ms 1584 KiB
21_answer_med_001 AC 30 ms 1712 KiB
21_answer_med_002 AC 30 ms 1712 KiB
21_answer_med_003 AC 28 ms 1432 KiB
21_answer_med_004 AC 30 ms 1588 KiB
22_answer_large_000 AC 29 ms 1576 KiB
22_answer_large_001 AC 30 ms 1576 KiB
22_answer_large_002 AC 29 ms 1460 KiB
22_answer_large_003 AC 29 ms 1552 KiB
22_answer_large_004 AC 32 ms 1712 KiB