Angel_Kalinkov

9.1.ProblemsForChampions-PartI-CrossingSequences_AngelKalink

Jan 29th, 2018
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.26 KB | None | 0 0
  1. using System;
  2.  
  3. class CrossingSequences
  4. {
  5.     static void Main(string[] args)
  6.     {
  7.         int tribonacci1 = int.Parse(Console.ReadLine());
  8.         int tribonacci2 = int.Parse(Console.ReadLine());
  9.         int tribonacci3 = int.Parse(Console.ReadLine());
  10.         int spiralStart = int.Parse(Console.ReadLine());
  11.         int spiralStep = int.Parse(Console.ReadLine());
  12.  
  13.         int spiralStep1 = 0;
  14.         int spiralStep2 = 0;
  15.         int number = spiralStep;
  16.         int count = 0;
  17.  
  18.         if (tribonacci1 == spiralStart || tribonacci2 == spiralStart
  19.                 || tribonacci3 == spiralStart)
  20.         {
  21.             Console.WriteLine(spiralStart);
  22.         }
  23.         else
  24.         {
  25.             while (spiralStep1 <= 1000000)
  26.             {
  27.                 int tribonacciNext = 0;
  28.                 int a = tribonacci1;
  29.                 int b = tribonacci2;
  30.                 int c = tribonacci3;
  31.                 while (tribonacciNext <= spiralStep2)
  32.                 {
  33.                     tribonacciNext = a + b + c;
  34.                     if (tribonacciNext == spiralStep1 || tribonacciNext == spiralStep2)
  35.                     {
  36.                         Console.WriteLine(tribonacciNext);
  37.                         spiralStart = 1000000;
  38.                         count++;
  39.                         break;
  40.                     }
  41.                     a = b;
  42.                     b = c;
  43.                     c = tribonacciNext;
  44.                 }
  45.                 spiralStep1 = spiralStart + spiralStep;
  46.                 if (spiralStep1 == tribonacci1 || spiralStep1 == tribonacci2
  47.                         || spiralStep1 == tribonacci3)
  48.                 {
  49.                     Console.WriteLine(spiralStep1);
  50.                     break;
  51.                 }
  52.                 spiralStep2 = spiralStep1 + spiralStep;
  53.                 if (spiralStep2 == tribonacci1 || spiralStep2 == tribonacci2
  54.                         || spiralStep2 == tribonacci3)
  55.                 {
  56.                     Console.WriteLine(spiralStep2);
  57.                     break;
  58.                 }
  59.                 spiralStart = spiralStep2;
  60.                 spiralStep += number;
  61.             }
  62.         }
  63.         if (spiralStep1 > 1000000 && count == 0)
  64.         {
  65.             Console.WriteLine("No");
  66.         }
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment