#15901: 測試執行正常,但送出解答會TLE


xup62l4m3@gmail.com (林語婷)

學校 : 不指定學校
編號 : 87968
來源 : []
最後登入時間 :
2018-11-02 15:44:55
a013. 羅馬數字 -- NPSC 模擬試題 | From: [60.249.24.225] | 發表日期 : 2018-11-05 18:19

a={"M":1000,"D":500,"C":100,"L":50,"X":10,"V":5,"I":1}
b={1000:"M",900:"CM",500:"D",400:"CD",100:"C",90:"XC",50:"L",40:"XL",10:"X",9:"IX",5:"V",4:"IV",1:"I"}
y=list(b.keys())
y=sorted(y,reverse=True)
tf=True
while tf:
    n1=input("").rstrip()
    if(n1=="#"):break
    n=n1.split(" ")
    x=[0,0]
    for i in range(2):
        for j in range(len(n[i])):
            if(j==len(n[i])-1):
                x[i]+=a[n[i][j]]
            elif(a[n[i][j]]>a[n[i][j+1]]):
                x[i]+=a[n[i][j]]
            elif(a[n[i][j]]<a[n[i][j+1]]):
                x[i]-=a[n[i][j]]
            else:
                x[i]+=a[n[i][j]]

    z=x[0]-x[1]
    if(z==0):
        print("ZERO")
    else:
        s=""
        while (z!=0):
            for i in range(len(y)):
                if (z>=y[i]):
                    z-=y[i]
                    s+=b[y[i]]
                    break
        print(s)

 
#15902: Re:測試執行正常,但送出解答會TLE


xup62l4m3@gmail.com (林語婷)

學校 : 不指定學校
編號 : 87968
來源 : []
最後登入時間 :
2018-11-02 15:44:55
a013. 羅馬數字 -- NPSC 模擬試題 | From: [60.249.24.225] | 發表日期 : 2018-11-05 18:23

a={"M":1000,"D":500,"C":100,"L":50,"X":10,"V":5,"I":1}
b={1000:"M",900:"CM",500:"D",400:"CD",100:"C",90:"XC",50:"L",40:"XL",10:"X",9:"IX",5:"V",4:"IV",1:"I"}
y=list(b.keys())
y=sorted(y,reverse=True)
tf=True
while tf:
    n1=input("").rstrip()
    if(n1=="#"):break
    n=n1.split(" ")
    x=[0,0]
    for i in range(2):
        for j in range(len(n[i])):
            if(j==len(n[i])-1):
                x[i]+=a[n[i][j]]
            elif(a[n[i][j]]>a[n[i][j+1]]):
                x[i]+=a[n[i][j]]
            elif(a[n[i][j]]<a[n[i][j+1]]):
                x[i]-=a[n[i][j]]
            else:
                x[i]+=a[n[i][j]]

    z=x[0]-x[1]
    if(z==0):
        print("ZERO")
    else:
        s=""
        while (z!=0):
            for i in range(len(y)):
                if (z>=y[i]):
                    z-=y[i]
                    s+=b[y[i]]
                    break
        print(s)

程式碼全部註解掉

只留

import sys

while True:

    n1=sys.stdin.readline()[:-2]

    if(n1=="#"):break

    print(n1)

也會TLE,為什麼??

 
#15903: Re:測試執行正常,但送出解答會TLE


tang891228 (tang891228)

學校 : 國立成功大學
編號 : 61119
來源 : [140.116.1.138]
最後登入時間 :
2018-09-24 00:20:31
a013. 羅馬數字 -- NPSC 模擬試題 | From: [1.172.108.75] | 發表日期 : 2018-11-05 19:21

n1=sys.stdin.readline()[:-2] 改成 n1=sys.stdin.readline()[:-1]

因為只需去掉輸入字串的最後一個換行字元即可

 
#15906: Re:測試執行正常,但送出解答會TLE


xup62l4m3@gmail.com (林語婷)

學校 : 不指定學校
編號 : 87968
來源 : []
最後登入時間 :
2018-11-02 15:44:55
a013. 羅馬數字 -- NPSC 模擬試題 | From: [60.249.24.225] | 發表日期 : 2018-11-05 23:37

n1=sys.stdin.readline()[:-2] 改成 n1=sys.stdin.readline()[:-1]

因為只需去掉輸入字串的最後一個換行字元即可

改成-1之後

在測試那邊會顯示錯誤,字串多了\r

有什麼方法可以讀一行,然後明確的刪掉\r\n呢?

 
#15907: Re:測試執行正常,但送出解答會TLE


OwO310659 (OwO)

學校 : 新北市立板橋高級中學
編號 : 58647
來源 : [118.150.111.60]
最後登入時間 :
2024-04-25 01:16:40
a013. 羅馬數字 -- NPSC 模擬試題 | From: [106.105.27.148] | 發表日期 : 2018-11-05 23:58

ZJ 在「測試執行」的換行字元是 '\r\n' 沒錯,
但是「送出執行」測資的換行字元只是 '\n' 而已, (除非出題者故意出'\r\n')
基本上只要在 Python 的 Shell 上能正確的輸入輸出在「送出解答」就會是對的了~

另外,
如果真的要能同時處理兩者的狀況可以試著 sys.stdin.readline().strip() ,
strip() 會清除頭尾所有空白字元(常見包括 ' ' , '\n' , '\r' , '\t' ),
也就是無論是 'I I\n' 或 'I I\r\n' 都會變成 'I I' ~

以上希望有幫助到你~ OwO

 
#15908: Re:測試執行正常,但送出解答會TLE


a0970580085@gmail.com (/)

學校 : 義守大學
編號 : 74647
來源 : [125.229.235.114]
最後登入時間 :
2023-08-30 17:36:04
a013. 羅馬數字 -- NPSC 模擬試題 | From: [111.254.197.114] | 發表日期 : 2018-11-06 00:05

也可以用 input() 讀

input() 不會讀到換行符號

 
#15918: Re:測試執行正常,但送出解答會TLE


xup62l4m3@gmail.com (林語婷)

學校 : 不指定學校
編號 : 87968
來源 : []
最後登入時間 :
2018-11-02 15:44:55
a013. 羅馬數字 -- NPSC 模擬試題 | From: [60.249.24.225] | 發表日期 : 2018-11-06 18:13

也可以用 input() 讀

sys.stdin.readline().strip()


我用這兩個依然只在測試的時候通過

送出依然TLE

而這兩個我原本也都用過了

 
#15941: Re:測試執行正常,但送出解答會TLE


tang891228 (tang891228)

學校 : 國立成功大學
編號 : 61119
來源 : [140.116.1.138]
最後登入時間 :
2018-09-24 00:20:31
a013. 羅馬數字 -- NPSC 模擬試題 | From: [1.172.99.56] | 發表日期 : 2018-11-07 04:00

你沒考慮到前面的數比較小的情形

例如:II VIII

 
ZeroJudge Forum