洛谷三月月賽 P5238 整數校驗器

2021-09-11 18:53:24 字數 1437 閱讀 3653

有些時候需要解決這樣一類問題:判斷乙個數 *** 是否合法。

*** 合法當且僅當其滿足如下條件:

你需要實現這樣乙個校驗器,對於給定的 l,rl, rl,r,多次判斷 *** 是否合法。

輸入格式:

第一行三個整數 l,r,tl,r,tl,r,t,表示校驗器的校驗區間為 [l,r][l,r][l,r],以及需要校驗的 *** 的個數。

接下來 ttt 行,每行乙個 ***,表示要校驗的數,保證 *** 長度至少為 111 且僅由 '0'~'9' 及 '-' 構成,且 '-' 只會出現在第乙個字元。

輸出格式:

輸出共 ttt 行,每行乙個整數,表示每個 *** 的校驗結果。

校驗結果規定如下:000 表示 *** 合法;111 表示 *** 格式不合法;222 表示 *** 格式合法且不在 [l,r][l,r][l,r] 區間內。

輸入樣例#1:複製

-3 3 4000

-0100000000000000000000

輸出樣例#1:複製

011

2

對於 100%100\%100% 的資料,0≤t≤5120 \le t \le 5120≤t≤512,l,rl,rl,r 在 646464 位有符號整型範圍內(即 −263≤l≤r≤263−1-2^\le l \le r \le 2^-1−263≤l≤r≤263−1)。

保證輸入檔案大小不超過 128kb\text128kb。資料在 linux 下生成,沒有 '\r' 字元。

以下為部分特殊限制(互不包含):

這是道考察字串的一道題,主要的知識點是字串轉數字,做這道題遇到的問題是,當乙個數特別大的時候會超範圍,改變量型別也不行。不能完全通過樣例。

下面展示字串轉數字的**:

#include//需要引入的標頭檔案

int str2num(string s)

以下bug**:

#include#include#include #include using namespace std;

double str2num(string s)

int main()

int main(){

double l,r,t;

cin>>l>>r>>t;

getchar();

for(int i=0;i=2){

if(n[0]=='0'){

cout<

cout<

洛谷 9月月賽

題目描述 眾所周知,在一些特殊的部門,如果密碼能夠讓乙個人就解開,就會非常不安全。pic pre invoked code,預生成密碼 誕生了。這個密碼比較安全,是因為它必須由三個人保管。系統首先預先生成三個大整數a b c,計算出它們的與and 或or 和sum並儲存,然後將a b c分別告訴這三...

洛谷5月月賽

n堆石子,每次可以從第i堆中取走乙個當且僅當ni ni 1 第0堆視作0個 拿不了就輸了。問先手贏還是後手贏。奇偶性問題。不管如何分布,必定全部被拿完。include inline char gc return s inline int read while c 0 c 9 return x f i...

洛谷10月月賽II

這道題考了矩陣旋轉 其實很考驗推公式的能力和 能力 這裡有個小技巧 可以設 x,y 為原點,然後去推公式,然後實際操作中橫座標加上x,縱座標加上y就好了。順時針 i,j j,i 逆時針 i,j j,i include define rep i,a,b for register int i a i b...