そーすにっき

なんかいろいろのせておくばしょ

ABC069

abc069.contest.atcoder.jp

8位でした。わーい

ただ、簡単な問題だったので速度勝負だったのがなんとも

頭悪い自分は600点問題がDに出ると死んでしまうなさけない人だからねしょうがないね

A:-1して乗算するだけ

B:stringを使えばあら不思議な問題

C:これよくわからず全通り場合分け

2の倍数を2,4の倍数を4,残りを1と書き換える

1)141422...2244...44

2)1414...14141

3)22...2244...44

この3通りのいずれかに並べ替えることができない配列はNo

この時要素数c(1),c(2),c(4)に注目すると

1)はc(1)<=c(4),c(2)!=0

2)はc(2)=0,c(1)+1=c(4)

3)はc(1)=0

これをちゃんと分ければOK

でも縮約できそう&正しいのか疑問

D:ジグザグに数字を埋めていけばOK Testcaseで分かるレベルのバグを埋めてしまい手間取って順位が3つくらい落ちた模様

#include <iostream>
#include <deque>
#include <vector>
#include <cstdio>
#include <cstring>
#include <utility>
#include <algorithm>
#include <string>
#include <cmath>
#include <queue>
#include <cmath>
 
#define i64 long long
#define ui64 unsigned long long
#define REP(i,n) for(int (i)=0;(i)<(n);i++)
#define REP2(i,k,n) for(int (i)=(k);(i)<(n);i++)
#define MDIST(a,b) abs(a-b)
#define DIST(a,b) sqrt((a)*(a)+(b)*(b))
#define ATCODER 1000000007
using namespace std;
 
////////////////////////
/* a */
int main(){
  int a,b;
  cin >> a >> b;
  cout << (a-1)*(b-1) << endl;
}
/* b */
int main(){
  string a;
  cin >> a;
  cout << a[0] << a.size()-2 << a[a.size()-1] << endl;
}
/* c */
int main(){
  int n;
  cin >> n;
  int c1=0,c2=0,c4=0;
  int a;
  REP(i,n){
    cin >> a;
    if(!(a%4))c4++;
    else if(!(a%2))c2++;
    else c1++;
  }
  // cout << n << " " << c2 << " " << c4 << endl;
  if(c1){
    if(c2){
      if(c1<=c4)cout << "Yes" << endl;
      else cout << "No" << endl;
    }else{
      if(c1<=c4+1)cout << "Yes" << endl;
      else cout << "No" << endl;
    }
  }else cout << "Yes" << endl;
}
/* d */
int main(){
  int H,W,N;
  cin >> H >> W >> N;
  int a[N];
  REP(i,N){
    cin >> a[i];
  }
  int d[H][W];
  int f=0;
  REP(i,H){
    if(i%2){
      for(int j=W-1;j+1;j--){
        d[i][j]=f+1;
        if(a[f]>1)a[f]--;
        else f++;
      }
    }else{
      for(int j=0;j<W;j++){
        d[i][j]=f+1;
        if(a[f]>1)a[f]--;
        else f++;
      }
    }
  }
  for(int i=0;i<H;i++){
    for(int j=0;j<W;j++){
      cout << d[i][j] << " ";
    }cout << endl;
  }
}