NC25085. 小w的a+b问题
描述
现在给你一个32位的负整形c。即。
请你给我两个32位的正整形a,b即。使得a+b=c。
如果不存在这样的a和b的话,请输出一个字符串"No solution"。否则请输出任意两个正整形a,b满足a+b=c。两个整数之间用一个空格隔开。
输入描述
仅一行一个32位负整形c,
输出描述
如果存在两个32位正整形a,b使得a+b=c成立,则输出这两个正整形。
反之请输出一个字符串"No solution"。(不含引号)
示例1
输入:
-182
输出:
2147483647 2147483467
说明:
a=2147483647="0111 1111 1111 1111 1111 1111 1111 1111"C++14(g++5.4) 解法, 执行用时: 3ms, 内存消耗: 376K, 提交时间: 2020-08-12 10:56:21
#include<cstdio> int n; int main() { scanf("%d",&n); if(n==-1) puts("No solution"); else printf("2147483647 %d\n",n-2147483647); }
C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 612K, 提交时间: 2020-02-26 15:20:55
#include<cstdio> int main() { int n; scanf("%d",&n); if(n==-1) puts("No solution"); else printf("2147483647 %d\n",n-2147483647); }
C(clang 3.9) 解法, 执行用时: 2ms, 内存消耗: 376K, 提交时间: 2019-06-21 22:26:02
#include"stdio.h" main(){ int c; scanf("%d",&c); if(c==-1) printf("No solution"); else printf("2147483647 %d",2147483649+c); }
Python3(3.5.2) 解法, 执行用时: 28ms, 内存消耗: 3348K, 提交时间: 2019-10-27 14:55:53
xxx = input() if int(xxx) == -1: print("No solution") else: print(2147483647,2147483647+int(xxx)+2)