トピック
のタイトル:逆さま値札
マイクのテレビ独占サンプル・ストア他の店の棚を呼び出すことができます。サンプルのTV店。
その価格は、4桁の数字(すなわち千ドル)です。
李注文価格(p1.jpgを参照)、明確な使いやすいと長く、それに描かれたカラーデジタルペンのように、プレハブデジタル類似の値札です。
この価格タグは、いくつかの数字上の特徴を持っている、逆さまには、合理的な数です。以下のような:1256890ことができます。その結果、符号がぶら下がっている場合、それは例えば、別の価格になっていることがあります。1958年には、逆さまにぶら下がっている:8561を、数千ドルああの違い!
0は数字で始めることはできませんので、もちろん、ほとんどの場合、読み取りに失敗し、例えば、1110年には、元に戻すことはできません。
ある日、悲劇が起こりました。店員が誤って2つのダウンがハングアップするために値札を置きます。どちらも価格とブランドのテレビセットが完売します!
幸い、価格が異なります大幅の一つは、200万人以上の値札、値札を失ったが、別の800稼いだ、一緒に、しかし、558元を稼ぎます。
この情報に基づいて、計算してください:赤字値札を正しい価格はどのくらいであるべきこと?
答えは整数4で、ブラウザから直接番号を提出してください。
注:クラスの内容を説明するには、プロセス、またはその他の援助への回答を提出しないでください。
答え
9088
コード
1 / * 2013-蓝桥杯-省-A-4 * / 2の#include <iostreamの> 3の#include <マップ> 4の#include <ベクトル> 5の#include <アルゴリズム> 6 使って 名前空間STDを、 7マップ< チャー、チャー > rev_map。 8 チャー NUM [ 7 ] = { ' 1 '、' 2 '、' 5 '、' 6 '、' 8 '、'、' 0 ' }。 9ベクトル< INT > g800p。 10マップ< int型、int型 > g800p_profmap。 11ベクター< INT > l200p。 12マップ< int型、int型 > l200p_profmap。 13 構造体のval { 14 チャー A [ 4 ]。 15 }。 16 17 ボイドのinit(){ 18 rev_map [ ' 1 ' ] = ' 1" ; 19 rev_map [ ' 2 ' ] = ' 5 ' 。 20 rev_map [ ' 6 ' ] = ' 9 ' 。 21 rev_map [ ' 8 ' ] = ' 8 ' 。 22 rev_map [ ' 9 ' ] = ' 6 ' 。 23 rev_map [ ' 0 ' ] = ' 0 ' 。 INT str2int(CHAR A []){ 26 のint TEMP = 0 。 27 TEMP = [ 0 ] - ' 0 ' + 10 *([ 1 ] - ' 0 ')+ 100 *([ 2 ] - ' 0 ')+ 1000年 *([ 3 ] - ' 0 ' ) ; 28 戻り温度; 29 } 30の 空隙 DFS(ヴァルCUR、INT POS){ 31 もし(POS == 4 ){ 32 であれば(cur.a [ 0 ] == ' 0 ' || cur.a [ 3 ] == ' 0 ' ){ 33 リターン。 34 } 他{ 35 チャー B [ 4 ]。 36 INT bef_val = str2int(cur.a)。 37 reverse_copy(cur.a、cur.a + 4 、B)。 38 B [ 0 ] = rev_map [B [ 0 ]]。 39 B [ 1 ] = rev_map [B [1 ]。 40 B [ 2 ] = rev_map [B [ 2 ]。 41 B [ 3 ] = rev_map [B [ 3 ]。 42 INT aft_val = str2int(B)。 43 INT教授= aft_val- bef_val。 44 であれば(教授> 800 &&教授< 900 ){ 45 // COUT << "を見つける:(800)、" << bef_val << ENDL。 46 // coutの<<教授<<てendl; 47 g800p.push_back(bef_val)。 48 g800p_profmap [bef_val] = 教授。 49 } 50 であれば(教授は、< - 200 &&教授- > 300 ){ 51 // COUT << "を見つける:(-200)" << bef_val << ENDL。 52 // coutの<<教授<<てendl; 53 l200p.push_back(bef_val)。 54 l200p_profmap [bef_val] = 教授。 55 } 56 57 リターン。 58 } 59 } 他{ 60 のために(INTは iは= 0 ; I < 7 ; I ++ ){ 61 cur.a [POS] = NUM [I]。 62の DFS(CUR、POS + 1 )。 63 } 64 } 65 } 66 INT メイン(){ 67 のinit(); 68 ヴァル・A; 69の DFS(0 )。 70 裁判所未満<< " OK DFS " << てendl; 71 のために(ベクトル< INT > ::イテレータiter1 = g800p.begin()!; iter1 = g800p.end(); iter1 ++ ){ 72 のために(ベクトル< INT > ::イテレータiter2 = l200p.begin(); iter2! = g800p.end(); iter2 ++){ 73 であれば(g800p_profmap [* iter1] + l200p_profmap [* iter2] == 558 ){ 74 COUT << * iter2 << " " << ENDL。 75 ブレーク; 76 } 77 } 78 } 79 リターン 0 。 80 } 81