有些時候需要解決這樣一類問題:判斷乙個數 *** 是否合法。這是道考察字串的一道題,主要的知識點是字串轉數字,做這道題遇到的問題是,當乙個數特別大的時候會超範圍,改變量型別也不行。不能完全通過樣例。*** 合法當且僅當其滿足如下條件:
你需要實現這樣乙個校驗器,對於給定的 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:複製
輸出樣例#1:複製-3 3 4000
-0100000000000000000000
對於 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)。011
2
保證輸入檔案大小不超過 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...