kotonoha_pcg@ぷろこんにっき

ここ(http://kotonoha-pcg.hatenablog.com/)の別館です、競プロの話が殆どです。最近mdモードに変えて一気に使い勝手が変わりました。

ABC#44

21:30から出たのが間違っていたと思う

A

 適当

#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    int n,k,q,w,ans=0;
    cin>>n>>k>>q>>w;
    for(int i=0;i<n;i++)
    {
        if(i>k-1) ans+=w;
        else ans+=q;
    }
    cout<<ans<<endl;
}

B

 アルファベットテーブル作って投げようとしたけどできてない.22:00頃完成したが勿論テストケースが合わない.放棄してCへ.

#include <bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    //int x=1;
    //no doing
    int cnt=0;
    cin>>s;
    //文字テーブル
    char al[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    //文字数カウント
    int v[26]={0};
    //flag
    bool bl[26];
    //どの文字があるか調べる
    for(int i=0;i<s.size();i++){
        for(int j=0;j<26;j++){
            if(s[i]==al[i]){
                v[i]+=1;
            }
        }
    }
    //v[i]%2==0ならfl+1
    for(int i=0;i<26;i++) bl[i]=(v[i]%2==0)?1:0;
    for(int i=0;i<26;i++){
        if(bl[i]!=0) cnt=1;
    }
    if(cnt==1) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
    return 0;
}

 一応書くと,全てYesになる.クソったれ.あと冗長.

C

 理屈解るけどコード起こせないマン完成.これ理屈解ってない気がする.1<=N<=16で部分点.やめた.

#include <bits/stdc++.h>
using namespace std;
int main()

{
    //入力
    
    //summer
    //x=0
    for(int i=0;i<x.size();i++){
        if(x[i]==A) cnt++;
    }
    //x=1
    for(int i=1;i<x.size();i++){
        ans=x[0];
        if((ans+x[i])%2==A) cnt++;
    }
    //x=2
    for(int i=2;i<x.size();i++){
        ans=x[0]+x[1];
        if((ans+x[i])%2==A) cnt++;
    }
    //このままx=16までやる気力は無い
}

紙で書いてたけどこちらも駄目.理屈はこれで合ってる気がする


f:id:kotonoha_pcg:20160828224819j:plain


D

 計算書けてない.最初逆算に気が付かず,適当に書いてたけどよく読んだら逆算なのに気付く.

全体

最近全然やってないな