AtCoder Beginner Contest #007 B問題 - 辞書式順序

Source

AtCoder Beginner Contest #007
問題文

問題概要

アルファベット小文字のみから成る $N$ 文字の文字列 $A$ が与えられる.
$A$ より辞書順で小さい,$1$ 文字以上 $100$ 以下のアルファベット小文字のみから成る文字列を $1$ つ出力する問題.
存在しなければそれを指摘する.

解法

$\verb|a|$ が最小なので,$A = \verb|a|$ なら存在せず,そうでなければ最小である $\verb|a|$ を出力すれば良い.

C++によるスパゲッティなソースコード

#include<cstdio>
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<algorithm>
#include<string>
#include<utility>
#include<iostream>
#include<cmath>
using namespace std;

#define REP(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)

#define mygc(c) (c)=getchar_unlocked()
#define mypc(c) putchar_unlocked(c)

int reader(char c[]){int i,s=0;for(;;){mygc(i);if(i!=' '&&i!='\n'&&i!='\r'&&i!='\t') break;}c[s++]=i;for(;;){mygc(i);if(i==' '||i=='\n'||i=='\r'||i=='\t') break;c[s++]=i;}return s;}
void writer(const char c[]){int i;for(i=0;c[i]!='\0';i++)mypc(c[i]);}

int main(){
  int n; char buf[1000];

  n = reader(buf);

  if(n==1 && buf[0]=='a') writer("-1\n");
  else writer("a\n");

  return 0;
}

Current time: 2017年07月21日13時40分51秒
Last modified: 2014年05月24日04時11分22秒 (by laycrs)
Tags: Competitive_Programming AtCoder AtCoder_Beginner_Contest ABC007 ABC_B
トップページに戻る

Logged in as: unknown user (not login)

ログイン: