fork(2) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #include <math.h>
  5.  
  6. int all(char c)
  7. {
  8. return !(isdigit(c) || c == ' ' || c == 'C' || c == '\n' || c == '-' || c == '+');
  9. }
  10.  
  11. float c_f(double c)
  12. {
  13. return (c * 9) / 5 + 32;
  14. }
  15.  
  16. int tabn(char c)
  17. {
  18. return !(c == ' ' || c == '\n' || c == '\t' || c == '-' || c == '+');
  19. }
  20.  
  21. int main(void)
  22. {
  23. int symbol;
  24. float m = 0.0;
  25. float s = 0.0;
  26. int state = 0;
  27. float f = 0.0;
  28. float r = 0.0;
  29. long int l = 0;
  30. long int k = 0;
  31.  
  32. while ((symbol = getchar()) != EOF) {
  33. switch (state) {
  34. case 0:
  35. if (symbol == ' ' || symbol == '\n' || symbol == '\t') {
  36. state = 0;
  37. } else if (symbol >= 'a' && symbol <= 'z') {
  38. state = 9;
  39. } else if (symbol == 'C') {
  40. state = 1;
  41. } else if (symbol >= 'A' && symbol <= 'Z') {
  42. state = 9;
  43. } else if (symbol >= '0' && symbol <= '9') {
  44. m = (s * 10) + (symbol - '0');
  45. s = m;
  46. state = 1;
  47. } else if (symbol == '-') {
  48. state = 8;
  49. } else if (symbol == '+') {
  50. state = 0;
  51. }
  52. break;
  53. case 1:
  54. if (isdigit(symbol)) {
  55. m = (s * 10) + (symbol - '0');
  56. s = m;
  57. state = 11;
  58. } else if (symbol == 'C') {
  59. f = round(c_f(s));
  60. l = f;
  61. r = l;
  62. state = 3;
  63. } else if (all(symbol)) {
  64. s = 0;
  65. m = 0;
  66. f = 0;
  67. r = 0;
  68. l = 0;
  69. state = 2;
  70. } else if (symbol == ' ' || symbol == '\t') {
  71. s = 0;
  72. m = 0;
  73. f = 0;
  74. r = 0;
  75. l = 0;
  76. state = 12;
  77. } else if (symbol == '\n') {
  78. s = 0;
  79. m = 0;
  80. f = 0;
  81. r = 0;
  82. l = 0;
  83. state = 7;
  84. } else if (symbol == '-') {
  85. state = 8;
  86. } else if (symbol == '+') {
  87. state = 0;
  88. }
  89. break;
  90. case 2:
  91. if (all(symbol)) {
  92. s = 0;
  93. m = 0;
  94. f = 0;
  95. r = 0;
  96. l = 0;
  97. state = 2;
  98. } else if (symbol == ' ') {
  99. s = 0;
  100. m = 0;
  101. f = 0;
  102. r = 0;
  103. l = 0;
  104. state = 1;
  105. } else if (symbol == '\n') {
  106. s = 0;
  107. m = 0;
  108. f = 0;
  109. r = 0;
  110. l = 0;
  111. printf("\n");
  112. state = 7;
  113. }
  114. break;
  115. case 3:
  116. if (symbol == ' ' || symbol == '\t') {
  117. printf("%ld%s", l, "F ");
  118. s = 0;
  119. m = 0;
  120. f = 0;
  121. r = 0;
  122. l = 0;
  123. state = 0;
  124. } else if (tabn(symbol)) {
  125. s = 0;
  126. m = 0;
  127. f = 0;
  128. r = 0;
  129. l = 0;
  130. state = 2;
  131. } else if (symbol == '\n') {
  132. printf("%ld%s\n", l, "F ");
  133. s = 0;
  134. m = 0;
  135. f = 0;
  136. r = 0;
  137. l = 0;
  138. state = 7;
  139. } else if (symbol == '+') {
  140. s = 0;
  141. m = 0;
  142. f = 0;
  143. r = 0;
  144. l = 0;
  145. state = 2;
  146. }
  147. break;
  148. case 4:
  149. if (isdigit(symbol)) {
  150. m = (s * 10) + (symbol - '0');
  151. s = m;
  152. state = 11;
  153. } else if (symbol == 'C') {
  154. f = round(c_f(s));
  155. l = f;
  156. r = l;
  157. state = 5;
  158. } else if (all(symbol)) {
  159. state = 2;
  160. } else if (symbol == ' ' || symbol == '\t') {
  161. state = 12;
  162. } else if (symbol == '\n') {
  163. state = 7;
  164. } else if (symbol == '-') {
  165. state = 8;
  166. } else if (symbol == '+') {
  167. state = 0;
  168. }
  169. break;
  170. case 5:
  171. if (symbol == ' ' || symbol == '\t') {
  172. printf("%ld%s", l, "F ");
  173. s = 0;
  174. m = 0;
  175. f = 0;
  176. r = 0;
  177. l = 0;
  178. state = 1;
  179. } else if (tabn(symbol)) {
  180. s = 0;
  181. m = 0;
  182. f = 0;
  183. r = 0;
  184. l = 0;
  185. state = 2;
  186. } else if (symbol == '\n') {
  187. printf("%ld%s\n", l, "F ");
  188. s = 0;
  189. m = 0;
  190. f = 0;
  191. r = 0;
  192. l = 0;
  193. state = 7;
  194. } else if (symbol == '+') {
  195. s = 0;
  196. m = 0;
  197. f = 0;
  198. r = 0;
  199. l = 0;
  200. state = 2;
  201. }
  202. break;
  203. case 6:
  204. if (isdigit(symbol)) {
  205. m = (s * 10) - (symbol - '0');
  206. s = m;
  207. state = 10;
  208. } else if (symbol == 'C') {
  209. f = round(c_f(s));
  210. l = f;
  211. r = l;
  212. state = 3;
  213. } else if (all(symbol)) {
  214. state = 2;
  215. } else if (symbol == ' ' || symbol == '\t') {
  216. state = 13;
  217. } else if (symbol == '\n') {
  218. state = 4;
  219. } else if (symbol == '-') {
  220. state = 8;
  221. } else if (symbol == '+') {
  222. state = 0;
  223. }
  224. break;
  225. case 7:
  226. if (symbol == ' ' || symbol == '\n' || symbol == '\t') {
  227. state = 7;
  228. } else if (symbol >= 'a' && symbol <= 'z') {
  229. state = 9;
  230. } else if (symbol == 'C') {
  231. state = 4;
  232. } else if (symbol >= 'A' && symbol <= 'Z') {
  233. state = 9;
  234. } else if (symbol >= '0' && symbol <= '9') {
  235. m = (s * 10) + (symbol - '0');
  236. s = m;
  237. state = 4;
  238. } else if (symbol == '-') {
  239. state = 8;
  240. } else if (symbol == '+') {
  241. state = 0;
  242. }
  243. break;
  244. case 8:
  245. if (symbol >= '0' && symbol <= '9') {
  246. m = (s * 10) - (symbol - '0');
  247. s = m;
  248. state = 6;
  249. } else if (symbol == ' ' || symbol == '\n' || symbol == '\t') {
  250. s = 0;
  251. m = 0;
  252. f = 0;
  253. r = 0;
  254. l = 0;
  255. state = 8;
  256. } else if (symbol >= 'a' && symbol <= 'z') {
  257. state = 9;
  258. } else if (symbol == 'C') {
  259. state = 8;
  260. } else if (symbol >= 'A' && symbol <= 'Z') {
  261. state = 9;
  262. } else if (symbol == '-') {
  263. state = 9;
  264. } else if (symbol == '+') {
  265. state = 0;
  266. }
  267. break;
  268. case 9:
  269. if (symbol == ' ' || symbol == '\n' || symbol == '\t') {
  270. s = 0;
  271. m = 0;
  272. f = 0;
  273. r = 0;
  274. l = 0;
  275. state = 0;
  276. } else if (symbol >= 'a' && symbol <= 'z') {
  277. s = 0;
  278. m = 0;
  279. f = 0;
  280. r = 0;
  281. l = 0;
  282. state = 9;
  283. } else if (symbol == 'C') {
  284. s = 0;
  285. m = 0;
  286. f = 0;
  287. r = 0;
  288. l = 0;
  289. state = 9;
  290. } else if (symbol >= 'A' && symbol <= 'Z') {
  291. s = 0;
  292. m = 0;
  293. f = 0;
  294. r = 0;
  295. l = 0;
  296. state = 9;
  297. } else if (symbol >= '0' && symbol <= '9') {
  298. s = 0;
  299. m = 0;
  300. f = 0;
  301. r = 0;
  302. l = 0;
  303. state = 9;
  304. } else if (symbol == '-' || symbol == '+') {
  305. s = 0;
  306. m = 0;
  307. f = 0;
  308. r = 0;
  309. l = 0;
  310. state = 9;
  311. }
  312. break;
  313. case 10:
  314. if (isdigit(symbol)) {
  315. m = (s * 10) - (symbol - '0');
  316. s = m;
  317. state = 10;
  318. } else if (symbol == 'C') {
  319. f = round(c_f(s));
  320. l = f;
  321. r = l;
  322. state = 3;
  323. } else if (all(symbol)) {
  324. s = 0;
  325. m = 0;
  326. f = 0;
  327. r = 0;
  328. l = 0;
  329. state = 2;
  330. } else if (symbol == ' ' || symbol == '\t') {
  331. s = 0;
  332. m = 0;
  333. f = 0;
  334. r = 0;
  335. l = 0;
  336. state = 1;
  337. } else if (symbol == '\n') {
  338. s = 0;
  339. m = 0;
  340. f = 0;
  341. r = 0;
  342. l = 0;
  343. state = 4;
  344. } else if (symbol == '-' || symbol == '+') {
  345. s = 0;
  346. m = 0;
  347. f = 0;
  348. r = 0;
  349. l = 0;
  350. state = 9;
  351. }
  352. break;
  353. case 11:
  354. if (isdigit(symbol)) {
  355. m = (s * 10) + (symbol - '0');
  356. s = m;
  357. state = 11;
  358. } else if (symbol == 'C') {
  359. f = round(c_f(s));
  360. l = f;
  361. r = l;
  362. state = 3;
  363. } else if (all(symbol)) {
  364. s = 0;
  365. m = 0;
  366. f = 0;
  367. r = 0;
  368. l = 0;
  369. state = 2;
  370. } else if (symbol == ' ' || symbol == '\t') {
  371. s = 0;
  372. m = 0;
  373. f = 0;
  374. r = 0;
  375. l = 0;
  376. state = 1;
  377. } else if (symbol == '\n') {
  378. s = 0;
  379. m = 0;
  380. f = 0;
  381. r = 0;
  382. l = 0;
  383. state = 4;
  384. } else if (symbol == '-' || symbol == '+') {
  385. s = 0;
  386. m = 0;
  387. f = 0;
  388. r = 0;
  389. l = 0;
  390. state = 9;
  391. }
  392. break;
  393. case 12:
  394. if (symbol == 'C') {
  395. s = 0;
  396. m = 0;
  397. f = 0;
  398. r = 0;
  399. l = 0;
  400. state = 0;
  401. } else if (all(symbol)) {
  402. s = 0;
  403. m = 0;
  404. f = 0;
  405. r = 0;
  406. l = 0;
  407. state = 2;
  408. } else if (symbol == ' ' || symbol == '\t') {
  409. s = 0;
  410. m = 0;
  411. f = 0;
  412. r = 0;
  413. l = 0;
  414. state = 1;
  415. } else if (symbol == '\n') {
  416. s = 0;
  417. m = 0;
  418. f = 0;
  419. r = 0;
  420. l = 0;
  421. state = 4;
  422. } else if (symbol == '-' || symbol == '+') {
  423. s = 0;
  424. m = 0;
  425. f = 0;
  426. r = 0;
  427. l = 0;
  428. state = 9;
  429. } else if (isdigit(symbol)) {
  430. m = (s * 10) + (symbol - '0');
  431. s = m;
  432. state = 11;
  433. }
  434. break;
  435. case 13:
  436. if (symbol == 'C') {
  437. s = 0;
  438. m = 0;
  439. f = 0;
  440. r = 0;
  441. l = 0;
  442. state = 0;
  443. } else if (all(symbol)) {
  444. s = 0;
  445. m = 0;
  446. f = 0;
  447. r = 0;
  448. l = 0;
  449. state = 2;
  450. } else if (symbol == ' ' || symbol == '\t') {
  451. s = 0;
  452. m = 0;
  453. f = 0;
  454. r = 0;
  455. l = 0;
  456. state = 0;
  457. } else if (symbol == '\n') {
  458. s = 0;
  459. m = 0;
  460. f = 0;
  461. r = 0;
  462. l = 0;
  463. state = 4;
  464. } else if (symbol == '-') {
  465. s = 0;
  466. m = 0;
  467. f = 0;
  468. r = 0;
  469. l = 0;
  470. state = 8;
  471. } else if (isdigit(symbol)) {
  472. m = (s * 10) - (symbol - '0');
  473. s = m;
  474. state = 10;
  475. } else if (symbol == '+') {
  476. state = 0;
  477. }
  478. break;
  479. }
  480. }
  481. if (r != 0) {
  482. k = floor(round(r));
  483. r = k;
  484. printf("%ld%s", k, "F\n");
  485. }
  486. return 0;
  487. }
Success #stdin #stdout 0s 2176KB
stdin
+06464C 00C 44586487C +14298C -261C 31022233C -111010C -001110C +08C 212222C 0C -1317C +213623212C  0C 28302369C -3032C +403C 369274347C -57C 45C 492070C -533C 3482C 01011000C -9562C 7C 09534C +596850C 1023310C +4169C 66C 8697558C -331C 1C 0261042C +5C 974699035C 138772C 441389C +312C 1064C 8C 99469C 380933400C 081839879C 675C 3962C 134C 230732340C +98C 893C 1101C 34C -4076174C  3C +35768341C -1223C 454200C 2703263C -6250C 31234C 621331C +3C -11320122C -4108C 1492C 00C +8C 669938C 04073C +263C
+926352C -1142124C -58C +42393756C -152936C -128823775C -05358429C +054C +5C -91847C +43104232C  0000011C 9C 3C 130243C 3013311C -211000221C +02156161C +501560367C 37C 279348988C -12316C 10C +792763C 2C 11000011C 412C +30646C 02210C +49545C -50441C 1C
+635C +38832C 4C 21101C -001C 4758C 233203C +40C 3C -1621988C -110C 2022C +112C 9C 0C 0C 101C +90983C -100011010C
7200C -00110100C 4803C +12C -407886C 662C 0840C 0252678C -02C 077431384C 467C 6081C 7174809C -0C 233C  5348C 110110110C 31313230C 002130321C 4673C 376236613C 251C 71136C 46553C 2C 002022021C  +021011200C 304043315C -0724548C 7C 597140380C 6070180C -4447C +122333C 113401C 204C 5204240C 9432C
10525C 3613257C -90795C 4C 3203022C 56392104C -32791C -3320855C 550C 258C 8C -34C 44777C -7C +280C 0C 6920589C -37919248C +80C -053C +6912C 632337354C
-6C 6780C +48519C 10C 855C 296080201C 63C +1882C 533054C 667C 01110C +0C 43101C 5057214C +111101C  +95C +984622594C 1232022C +154130052C -4811815C 4154C +091C 100000C +4C 117C 508660952C 775C  0C 9972C 44C 76C 2C 0101121C 3298961C +20527854C +5435C 4565740C 11110C -1C 6414C 3531C 3122203C 535C +44804971C 58C 60C +96531657C -876042C +225318C 5118C -225C 314410334C -26072C -2042341C 523451164C 00120C 76204240C 31C +25231577C 8058C +7C 16657C 000201C 998158105C +56C 353882282C 
+1100C 894C 715C -68560112C 6533C +2C 4C +432044C 71111C 40C 2C 165320143C -4301C
4429C -512C +122122435C 5C 6334052C -694050569C -9C +7311156C 1110C 1C
-9593844C 354365615C 14244542C 305C 9C +232043C 2771C 595152309C +1696C -167373305C 159C 864446C  48508C 00001001C +208200C 8146C -0000010C -2178C +699C 0267652C
-04C 2C +21002C -81638C 2416C 45135144C +8693977C 4248686C +431C 9746C 873874C +8C +76C 311C 17C +3C -46810C +252C +981C 023C +864C 15C -80022049C +9497C 1261C 24C -00C 7C 9755791C 481C -20332100C +92C 605C -068599C 20112100C 100100022C 2361C 0123103C -613372525C 43820313C +16400C  1C 439C -2668277C -010C
stdout
11667F 32F 80255712F 25768F -438F 55840048F -199786F -1966F 46F 382032F 32F -2339F 384521792F 32F 50944296F -5426F 757F 664693824F -71F 113F 885758F -927F 6300F 1819832F -17180F 45F 17193F 1074362F 1841990F 7536F 151F 15655636F -564F 34F 469908F 41F 1754458368F 249822F 794532F 594F 1947F 46F 179076F 685680192F 147311808F 1247F 7164F 273F 415318240F 208F 1639F 2014F 93F -7337081F 37F 64383044F -2169F 817592F 4865906F -11218F 56253F 1118428F 37F -20376188F -7362F 2718F 32F 46F 1205920F 7363F 505F 
1667466F -2055791F -72F 76308792F -275253F -231882768F -9645140F 129F 41F -165293F 77587648F 52F 48F 37F 234469F 5423992F -379800384F 3881122F 902808640F 99F 502828224F -22137F 50F 1427005F 36F 19800052F 774F 55195F 4010F 89213F -90762F 34F 
1175F 69930F 39F 38014F 30F 8596F 419797F 104F 37F -2919547F -166F 3672F 234F 48F 32F 32F 214F 163801F -180019776F 
12992F -198148F 8677F 54F -734163F 1224F 1544F 454852F 28F 139376528F 873F 10978F 12914688F 32F 451F 9658F 198198240F 56363848F 3834610F 8443F 677225920F 484F 128077F 83827F 36F 3639670F 37820192F 547278016F -1304154F 45F 1074852736F 10926356F -7973F 220231F 204154F 399F 9367664F 17010F 
18977F 6503895F -163399F 39F 5765472F 101505816F -58992F -5977507F 1022F 496F 46F -29F 80631F 19F 536F 32F 12457092F -68254616F 176F -63F 12474F 1138207232F 
21F 12236F 87366F 50F 1571F 532944384F 145F 3420F 959529F 1233F 2030F 32F 77614F 9103017F 200014F 203F 1772320640F 2217672F 277434112F -8661235F 7509F 196F 180032F 39F 243F 915589760F 1427F 32F 17982F 111F 169F 36F 182050F 5938162F 36950168F 9815F 8218364F 20030F 30F 11577F 6388F 5619998F 995F 80648984F 136F 140F 173757008F -1576844F 405604F 9244F -373F 565938624F -46898F -3676182F 942212160F 248F 137167664F 88F 45416868F 14536F 45F 30015F 394F 1796684544F 133F 636988096F 2012F 1641F 1319F -123408168F 11791F 36F 39F 777711F 128032F 104F 36F 297576288F -7710F 
8004F -890F 219820416F 41F 11401326F -1249291008F 16F 13160113F 2030F 34F 
-17268888F 637858112F 25640208F 581F 48F 417709F 5020F 1071274240F 3085F -301271936F 318F 1556035F 87346F 1834F 374792F 14695F 14F -3888F 1290F 481806F 
25F 36F 37836F -146916F 4381F 81243288F 15649191F 7647667F 808F 17575F 1573005F 46F 169F 592F 63F 37F -84226F 486F 1798F 73F 1587F 59F -144039648F 17127F 2302F 75F 32F 45F 17560456F 898F -36597748F 198F 1121F -123446F 36201812F 180180080F 4282F 221617F -1104070528F 78876592F 29552F 34F 822F -4802867F 14F