-
Couldn't load subscription status.
- Fork 1
📃 partial.cpp
Nepumi-Jr edited this page May 25, 2024
·
2 revisions
เป็นไฟล์ Script ที่เริ่มจากการแข่งขัน THACO (หรือป่าววะไม่แน่ใจ 5555+)
โดยข้อมูลที่ partial.cpp จะรู้คือ
- ที่อยู่ของไฟล์
.inของเคสแต่ละเคส - ที่อยู่ของไฟล์
.solของเคสแต่ละเคส (คำตอบที่ถูก) - ที่อยู่ของไฟล์ output ของผู้ส่งแต่ละเคส
- ซึ่งรับจากการอ่าน
argvที่ส่งเข้ามาตามลำดับดังนี้argv[1]คือ.sol,argv[2]คือ.in,argv[3]คือ output ของผู้ส่ง - การส่งออก จะมีการส่งสองส่วน
- ส่วนคะแนน โดยส่งผ่าน STDOUT โดยการส่งคะแนนออกมาเป็นทศนิยม ซึ่งค่าต่ำสุดคือ 0.0 และสูงสุดคือ 1.0
- ส่วน Comment โดยส่งผ่าน STDERR โดยเป็นการบอกผลตรวจว่าผ่าน, ไม่ผ่าน หรือ ผ่านบางส่วน ซึ่งจะแสดงเป็นข้อความดังนี้
translate:successtranslate:failtranslate:partialตามลำดับ
แมวของคุณชอบเลข 69 มาก ๆ ซึ่งหากเกินนั้น แมวของคุณจะไม่สนใจทันที แต่หากต่ำกว่านั้น ยิ่งตัวเลขเข้าใกล้ 69 มากเท่าไหร่ แมวของคุณก็จะสนใจมากขึ้น (คะแนนคำนวณจาก ตัวเลข / 69)
งานของคุณคือ ให้เขียนโปรแกรมแสดงตัวเลข 69 หรือต่ำกว่า บนหน้าจอ
(ไม่มี)
จำนวนเต็ม
#include <bits/stdc++.h>
//ชุดคำสั่งที่ใช้ในการส่งผลตรวจคำตอบ
//กรณีถูกบางส่วน
void pc(double score){
std::cout << std::fixed << score << std::endl;
std::cerr << "translate:partial" << std::endl;
exit(0);
}
//กรณีผิด
void wa(){
std::cout << "0.0" << std::endl;
std::cerr << "translate:wrong" << std::endl;
exit(0);
}
//กรณีถูก
void ok(){
std::cout << "1.0" << std::endl;
std::cerr << "translate:success" << std::endl;
exit(0);
}
// ชุดคำสั่งอ่าน string จาก stream
std::string readWord(std::istream& in){
std::string out;
if(in >> out) return out;
else return FAILSTR;
}
// ชุดคำสั่งอ่าน int จาก stream
int readInt(std::istream& in, int mn = INT_MIN, int mx = INT_MAX){
int tmp;
in >> tmp;
if(tmp < mn || tmp > mx){
wa();
}
return tmp;
}
int main(int argc, char* argv[]) {
std::ifstream inf(argv[1]); //อ่าน .in ไฟล์จาก argv ข้อที่ 1
std::ifstream ans(argv[2]); //อ่าน .sol ไฟล์จาก argv ข้อที่ 2 (ที่เป็นคำตอบที่ถูก)
std::ifstream ouf(argv[3]); //อ่าน output ที่ Output ออกมาในข้อที่ 3
int num = readInt(ouf);
if (num > 69) wa();
else if (num == 69) ok();
else {
pc((double)num / 69.0);
}
}706 อะไรก็ได้ อย่าเรียงก็พอ
|- 1.in
|- 1.sol
|- 2.in
|- 2.sol
|- 3.in
|- ...
|- 10.sol
|- partial.cpp
.