ホームページ  >  記事  >  ウェブフロントエンド  >  Codeforces ラウンド #279 (ディビジョン 2) (C题)_html/css_WEB-ITnose

Codeforces ラウンド #279 (ディビジョン 2) (C题)_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:53:261332ブラウズ

C. ハッキングサイファー

テストごとの制限時間

1 秒

テストごとのメモリ制限

256 メガバイト

入力

標準入力

出力

標準出力

Polycarpus が参加しています新しい安全なメッセンジャーをハッキングするコンテスト。彼はほぼ勝利しました。

インタラクションプロトコルを注意深く研究した結果、Polycarpus はアプリケーションの公開鍵を適切に 2 つの部分に分割すれば秘密鍵を取得できるという結論に達しました。公開鍵は、100 万桁も含まれる長整数です。

Polycarpus は、公開鍵を空ではない 2 つの部分に分割し、最初の (左側) 部分が個別の数値として a で割り切れるような方法を見つける必要があります。 、2 番目(右)の部分は別の数として b で割り切れます。両方の部分は、先頭にゼロのない正の整数である必要があります。 Polycarpus は値 a と b を知っています。

Polycarpus を助けて公開鍵を切断する適切な方法を見つけてください。

入力

入力の最初の行にはメッセンジャーの公開鍵が含まれています。先頭にゼロのない整数。長さは 1 ~ 106 桁の範囲です。 2 行目には、スペースで区切られた正の整数 a, b (1?≤?a,?b?≤?108) のペアが含まれています。

出力

最初の行に「YES」と出力します (引用符なし)。 , 上記の条件を満たすメソッドが存在する場合。この場合、次に 2 行を出力します。カット後の左右の部分。これら 2 つの部分を連結すると、公開キーとまったく同一である必要があります。左側の部分は a で割り切れる必要があり、右側の部分は b で割り切れる必要があります。 2 つの部分は、先頭にゼロのない正の整数である必要があります。複数の回答がある場合は、いずれかを印刷してください。

回答がない場合は、「いいえ」を 1 行で印刷します (引用符なし)。

出力

11640102497 1024

入力

YES116401024

出力

2842545891539281719112818110001009 1000

入力

YES284254589153928171911281811000

出力

12012 1

また一次借鉴了袁学长的代码.. ..

还是自己太菜了,啥都不咋会...


不过次又学了好多....

比如怎么判断一大数能否被一数a整除

本题意: 前段が a を整除できるかどうか同時に後段が b を整除できるかどうか

思路: 前から後まで一巡记录前段が a を整除できる位置、前扫一遍の後、後段が調整可能な位置にあり、前段が調整可能である場合、循環を飛び越え、再出力し、出力NOかどうかを判断します能否被一数a整除,代码:

NO

AC代番号:


#include <cstdio>#include <cstring>#include <iostream>using namespace std;int main(){	char num[1000010];	int a;	while(scanf("%s", num)!=EOF)	{		scanf("%d", &a);		int cur = 0;		for(int i=0; i<strlen(num); i++)		{			cur *= 10;			cur += num[i]-'0';			cur %= a;		} 		if(!cur)cout<<"YES"<<endl;		else cout<<"NO"<<endl;	}	return 0;}



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。