svetlozar_kirkov

Crossing Sequences

Sep 23rd, 2014
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.38 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace CrossingSequences
  6. {
  7.     class CrossingSequences
  8.     {
  9.         static void Main()
  10.         {
  11.             int fibonacci1 = int.Parse(Console.ReadLine());
  12.             int fibonacci2 = int.Parse(Console.ReadLine());
  13.             int fibonacci3 = int.Parse(Console.ReadLine());
  14.             int spiralInitial = int.Parse(Console.ReadLine());
  15.             int spiralStep = int.Parse(Console.ReadLine());
  16.             List<int> fibonacci = new List<int>();
  17.             List<int> fiboFinal = new List<int>();
  18.             List<int> spiralSeq = new List<int>();
  19.             List<int> spiralFinal = new List<int>();
  20.             fibonacci.Add(fibonacci1);
  21.             fibonacci.Add(fibonacci2);
  22.             fibonacci.Add(fibonacci3);
  23.             spiralSeq.Add(spiralInitial);
  24.             spiralSeq.Add(spiralInitial + spiralStep);
  25.             spiralSeq.Add(spiralInitial + 2 * spiralStep);
  26.  
  27.             for (int i = 0, j=1, k=2; i < 200; i++)
  28.             {
  29.                 if (fibonacci[i] > 1000000)
  30.                 {
  31.                     break;
  32.                 }
  33.                 else
  34.                 {
  35.                     fibonacci.Add(fibonacci[i] + fibonacci[j] + fibonacci[k]);
  36.                     j++;
  37.                     k++;
  38.                 }
  39.                
  40.             }
  41.  
  42.             for (int i = 0; i < fibonacci.Count; i++)
  43.             {
  44.                 if (fibonacci[i] <= 1000000)
  45.                 {
  46.                     fiboFinal.Add(fibonacci[i]);
  47.                 }
  48.             }
  49.  
  50.             for (int i = spiralInitial+2*spiralStep, j = 2; i <= 1000000; )
  51.             {
  52.                 spiralSeq.Add(i + spiralStep * j);
  53.                 spiralSeq.Add(i + spiralStep * j*2);
  54.                 i = i + spiralStep * j * 2;
  55.                 j++;
  56.             }
  57.  
  58.             for (int i = 0; i < spiralSeq.Count; i++)
  59.             {
  60.                 if (spiralSeq[i] <= 1000000)
  61.                 {
  62.                     spiralFinal.Add(spiralSeq[i]);
  63.                 }
  64.             }
  65.  
  66.             List<int> common = fiboFinal.Intersect(spiralSeq).ToList();
  67.  
  68.             if (common.Count==0)
  69.             {
  70.                 Console.WriteLine("No");
  71.                 return;
  72.             }
  73.             else
  74.             {
  75.                 Console.WriteLine(common.Min());
  76.             }
  77.         }
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment