Advertisement
Guest User

Code used

a guest
Mar 16th, 2023
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.36 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "encoding/json"
  5.     "fmt"
  6.     "io/ioutil"
  7.     "net/http"
  8.     "sort"
  9. )
  10.  
  11. type Team struct {
  12.     Name      string `json:"name"`
  13.     Institute string `json:"institution"`
  14. }
  15.  
  16. func main() {
  17.     // create a new HTTP client
  18.     client := &http.Client{}
  19.  
  20.     // create a new GET request
  21.     req, err := http.NewRequest("GET", "https://icpc.global/api/team/search/site/accepted/22697?q=proj:institution,name%3B&page=1&size=1250", nil)
  22.     if err != nil {
  23.         fmt.Println("Error creating request:", err)
  24.         return
  25.     }
  26.  
  27.     // execute the request
  28.     resp, err := client.Do(req)
  29.     if err != nil {
  30.         fmt.Println("Error sending request:", err)
  31.         return
  32.     }
  33.  
  34.     defer resp.Body.Close()
  35.     body, err := ioutil.ReadAll(resp.Body)
  36.     if err != nil {
  37.         fmt.Println("Error reading response body:", err)
  38.         return
  39.     }
  40.  
  41.     var teams []Team
  42.     err = json.Unmarshal(body, &teams)
  43.     if err != nil {
  44.         fmt.Println("Error parsing response body as JSON:", err)
  45.         return
  46.     }
  47.  
  48.     distinctCollege := make(map[string]int)
  49.  
  50.     for i := 0; i < len(teams); i++ {
  51.         distinctCollege[teams[i].Institute]++
  52.     }
  53.  
  54.     keys := make([]string, 0, len(distinctCollege))
  55.  
  56.     for k := range distinctCollege {
  57.         keys = append(keys, k)
  58.     }
  59.     sort.SliceStable(keys, func(i, j int) bool {
  60.         return distinctCollege[keys[i]] > distinctCollege[keys[j]]
  61.     })
  62.  
  63.     for _, k := range keys {
  64.         fmt.Println(k, distinctCollege[k])
  65.     }
  66. }
  67.  
  68.  
Tags: go
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement