結果

問題 No.438 Cwwプログラミング入門
ユーザー ytft
提出日時 2021-03-24 14:38:46
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 941 bytes
コンパイル時間 2,235 ms
コンパイル使用メモリ 173,496 KB
実行使用メモリ 814,488 KB
最終ジャッジ日時 2024-11-26 22:53:41
合計ジャッジ時間 17,221 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 WA * 1
other AC * 41 WA * 50 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[1-ord[i]]);j++){
            ans+=((1-ord[i])?'c':'w');
        }
    }
    for(int i=0;i<2;i++){
        if(ans.size()>1){
            ans+=(memo[ord[i]]<0?'W':'C');
        }
    }
    cout<<ans<<endl;
}
0