srupのメモ帳

競プロで解いた問題や勉強したことを記録していくメモ帳

yukicoder No.83 最大マッチング

問題

問題概要

省略

解法

数を大きくするには、桁数を増やせばよい。そのように考えて数を作るためのマッチの本数を見ると、1が2本で作れるので、一番少なくてすむので、基本1をたくさん作ればよいということになる。ただし、nが奇数の場合もあるので、そのときは、1を一つ作る代わりに、7を作ればより大きい数字になる。

ミス

面白い問題。

コード

#include <iostream>
#include <queue>
#include <vector>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
#define rep(i,n) for(int i=0;i<(n);i++)
const int INF = 1e9;

int main(void){
    int n; cin >> n;
    if(n % 2 == 1){
        printf("7");
        n -= 3;
        rep(i, n / 2){
            printf("1");
        }
        printf("\n");
    }else{
        rep(i, n / 2){
            printf("1");
        }
        printf("\n");
    }
    return 0;
}