結果

問題 No.438 Cwwプログラミング入門
ユーザー ytft
提出日時 2021-03-24 14:25:12
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 915 bytes
コンパイル時間 1,672 ms
コンパイル使用メモリ 172,168 KB
実行使用メモリ 817,444 KB
最終ジャッジ日時 2024-11-26 22:52:47
合計ジャッジ時間 14,970 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 56 WA * 35 RE * 6 TLE * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

int func(long long a,long long b){
    return max(2*abs(a-b)-1,2*abs(a+b-1)+1);
}

int main(){
    long long x,y,z;
    cin>>x>>y>>z;
    long long temp;
    int min=10001;
    vector<long long> memo(2);
    for(long long i=5000;i>-5000;i--){
        if(abs(z-y*i)%x==0){
            if(min>func(i,(z-y*i)/x)){
                min=func(i,(z-y*i)/x);
                memo={i,(z-y*i)/x};
            }
        }
    }
    if(min==10001){
        cout<<"NO"<<endl;
        return 0;
    }
    string ans="";
    if(memo[0]<=0&&memo[1]<=0){
        ans+="wwW";
    }
    vector<int> ord={(memo[0]>memo[1]?0:1),1-(memo[0]>memo[1]?0:1)};
    for(int i=0;i<2;i++){
        for(int j=0;j<abs(memo[ord[i]]);j++){
            ans+=(ord[i]?'c':'w');
            if(ans.size()>1){
                ans+=(memo[ord[i]]<0?'W':'C');
            }
        }
    }
    cout<<ans<<endl;
}
0