[ブルーブリッジカップ2017予選]発行日を

 

 タイトル説明

暁明は、歴史的文書の数を配置しています。これらの歴史的資料の日付が多くありました。
暁明これらの日付は2059年12月31日に1960年1月1日を知っています。
暁明頭痛は非常にこれらの日付書式用途が大きく変化することを、年/月/日の使用があり、月/日/年の使用だけでなく、日/月/年の使用があります。
もっと面倒、また、文献上の日付は、それに対応する多くの可能な日があるので、最初の2年間から省略されています。  
このような02/03/04として、2004年3月4日2004年2月3日または2002年3月2日かもしれません。  
文書の日付を考えると、あなたはその対応それの何暁明可能な日付を決定するのに役立つことができますか?

エントリー

日付は、形式は "AA / BB / CC" です。(0 <= A、B、C <= 9)  

輸出

複数の出力は、同じ日付ではなく、フォーマットの各行の日付は「YYYY-MM-DD」です。
夜に日付複数の朝編曲。  

サンプル入力

02/03/04

サンプル出力 

2002年3月4日
2004-02-03
2004-03-02

解決法:対象は難しいことではありません、迷惑です〜V〜

昇順での最後の日に一つのいずれか1、かどうかを判断するには、3つの入力の形式、年/月/日、月/日/年、日/月/年、合法的な日付の3つの形式がありますので

注2つの、より具体的なデータという。

1、年の位置が00時にしました

同じ3つのパラメータ、注意を払うが、一つだけ、このような01/01/01の出力を重み付けするために2、

 

書式#include <iostreamの> 
の#include < 文字列 > 
の#include <アルゴリズム> 
書式#include <math.h>の
 使用して 名前空間  はstdを、
int型、T = 0 ;

構造体のノード
{
    INT Y、M、D。
} P [ 120 ]。

int型の検索(int型x)は、
{
    もし(X%4 == 0 && X%100!= 0 || X%400 == 0 リターン 1 それ以外
        の戻り 0 ;
}
ブールCMP(ノードA、ノードB)
{
    もし(!AY = による)
         リターン AY < ことにより、
    そうしないと
    {
        もし(!AM = BM)
             の戻り午前< BM。
        他の
            広告 < BD。
    }
}

のチェック(int型の YY、int型ミリメートル、int型DD)
{
    INTの日[ 13 ] = { 0312831303130313130313031 }。
    もし(YY> = 60 
        YY = 1900 + YY。
    他の 
        YY = 2000 + YY。

    IF((YY)==下さい。1// 分析閏 
        日[ 2 ] ++ ;

    もし(MM> 0 && MM <= 12 
    {
        もし(DD> 0 && DD <= 日さ[mm])
        {
            P [T] .Y = YY。
            P [T] .M = MM。
            P [T ++] D = DD。
        }
    }
}
int型のmain()
{
    文字列sの。
    cinを >> 秒;

    INT、X1 =(S [ 0 ] - ' 0 ')* 10 +(S [ 1 ] - ' 0 ' )。
    INT X2 =(S [ 3 ] - ' 0 ')* 10 +(S [ 4 ] - ' 0 ' )。
    INT X3 =(S [ 6 ] - ' 0 ')* 10 +(S [ 7 ] - ' 0 ' )。

    //   X1 / X2 / X3入力可能な3つの形式が上の判断に入力され、 
    チェック(X1、X2、X3); // 年/月/日 
    チェック(X3、X1、X2); // 月/日/年 
    チェック(X3、X2、X1); // 日/月/年
     // チェック(年、月、日)

    ソート(P、P + T、CMP);
     のためint型 I = 0 ; I <T; I ++)// このようなS = 01/01/01として重複排除さえ日付は、唯一の場合である出力
    {
         IF(I> 0 && P [I] .Y == P [I- 1 ] .Y && P [I]。 == P mの[I- 1 ] .M && P [I] 2.D == P [I- 1 ] 2.D)
             続けます
        printf(" %D-%02d-%02D \ n " 、P [i]は.Y、P [i]は.M、P [I] .D)。
    }
    リターン 0 ;
}

 

おすすめ

転載: www.cnblogs.com/-citywall123/p/12333019.html